Vue+typescript 구성 요소 간의 통신(하위 구성 요소가 여러 값을 전달하고 부모 구성 요소의 사용자 정의 파라미터를 포함)
7356 단어 vue
이면 하위 구성 요소의 이름은 ColorDrawer.vue
이다.그 다음으로 ts에서 모두 장식기로 아래의 내용이 무엇인지(부품인지, 신호발사기인지,prop속성 등)를 설명해야 하기 때문에 반드시 장식기를 도입해야 한다.
다음은 부모 구성 요소에 하위 구성 요소를 도입하고 구성 요소를 등록합니다. 구성 요소를 도입하는 것은 js와 같습니다.
import ColorDrawer from './moudle/ColorDrawer'
등록은 component 장식기 아래에 있어야 합니다. 여기에 두 층의 component가 있습니다. 하나를 빠뜨리면 오류가 발생할 수 있습니다.
import { Component, Prop, Vue, Emit, Mixins, Watch } from 'vue-property-decorator'
입니다. 그리고 이 @Component는 장식기입니다. 아래의class Color Father를 장식하는 데 사용됩니다. 장식기와 피장식류 사이에 다른 문구를 삽입할 수 없습니다. 그렇지 않으면 TS2769: No overload matches this call.
을 잘못 보고할 수 있습니다. //
@Component({
components: {
ColorDrawer
}
})
export default class ColorFather extends Mixins(UploadMixin){
}
그리고 하위 구성 요소를 만들면 부모 구성 요소에서 인용할 수 있습니다. 그러나 단일한 전시가 아니라면, 예를 들어 이 하위 구성 요소가 서랍이라면, 하위 구성 요소의 열기/닫기/서랍의 내용을 제어해야 합니다.이 경우 부모 구성 요소가 서브 구성 요소에 값이나 함수를 전달해야 합니다.부모 구성 요소가:color-list에 테스트 값을 전달하고, 하위 구성 요소의 prop은 ColorList에 테스트 값을 부여합니다.
하위 구성 요소 prop 수식 및 감청 형식입니다. 이것은 Object 형식의 사전 서열입니다. 하위 구성 요소 템플릿 내부에서 테스트 값을 임의로 사용할 수 있습니다. 하위 구성 요소 자체가 정의한 데이터와 같지만 수정할 수 없습니다.
@Prop({
type: Object,
required: true,
default: () => ({})
}) private test!: any
물론 부모 구성 요소가 함수를 전달한다면 서브 구성 요소가 전달하는 함수를 많이 정의한 것과 같다.
//
<child :before-upload="test"></child>
// ts
test (file: any) {
if (file.size < 1024 * 1024) {
return false
}
else
return true
}
즉, 서브어셈블리 내부에서 이 함수를 자유롭게 호출할 수 있다.
@Prop(uploadProps.test)
public test!: Function
//
ChildTest (file: any) {
if (this.test(file)) {
// test
}
마지막으로 서브어셈블리가 부모 어셈블리와 같은 값을 전달합니다.emit는 신호를 연결하는 것 외에 반드시 함수를 연결해야 한다. 이test 함수는 반복적으로 사용할 수 있다. 이것은 서브 구성 요소에서test 함수를 만나면bindSend의 신호를 보내는 것을 의미한다.여기 전달된 매개 변수는 msg입니다.
@Emit('bindSend') test(msg: string){}; // send
부모 구성 요소는 사용자 정의 방법인 bindSend를 통해 전달된 매개 변수 msg를 수신하고 함수propMsg를 터치합니다. msg는 기본적으로 전달된 매개 변수입니다.
<Child @bindSend="propMsg"/>
propMsg(msg: string){
this.msg = msg;
}
물론
Decorators are not valid here
은 생략된 문법이다. 매개 변수가 @bindSend="propMsg"
과 같으면 사용자가 정의한userDefined가 없으면 @bindSend='propMsg($event,userDefined)'
이다.그러나 매개 변수가 두 개 이상의 매개 변수가 있을 때는 @bindSend="propMsg"
에 해당하지만 이때arguments는 수조로 변했다.이때 수신된 msg는 수조이고 msg[0]는 그 중의 첫 번째 매개 변수로 추정된다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.