vuejs 구성 요소 통신 이벤트 허브 (버스)
2813 단어 vuejs
이벤트 허브 가 뭐 예요?
하지만 또 축소판 으로 거지 판 이 라 고 할 수 있다. 그 가 조작 하 는 것 이 많 지 않 기 때문이다.
그러나 구성 요소 간 의 통신 으로 충분 합 니 다. vuex 를 사용 하면 vuex 를 인용 할 수 밖 에 없 기 때 문 입 니 다.
그리고 당신 은 많은 배 치 를 해 야 하기 때문에 대형 이나 중형 프로젝트 에서 처리 하기에 매우 편리 합 니 다.
그러나 한두 개의 구성 요소 간 에 데 이 터 를 전달 하거나 구성 요소 가 비교적 적은 상황 에서 이렇게 조작 하려 면 예비 방안 이 필요 하 다.
이벤트 허브 는 어떻게 사용 합 니까?
1. 외부 js 참조 라면 이렇게 쓸 수 있 습 니 다.
// event-bus.js
//
var eventHub = new Vue()
export default eventHub
//
import Subscriber from './components/Subscriber' // ,
import eventHub from './js/event-bus' // ,
export default {
methods:{
find(){
eventHub.$emit('delete-todo', 'hello')
//
//
}
}
}
// 1
// components :Subscriber
export default {
created(){
eventHub.$on('delete-todo',backing )
//
//
//
},
methods:{
backing(site){
console.log(site)
}
}
}
// 「 」
// : hello
이것 은 그 를 js 인용 으로 독립 시 키 는 것 입 니 다. 사용 할 때마다 구성 요소 에서 정 의 를 내리 지 않 으 려 면 어떻게 해 야 합 니까?
1. 입구 파일 에서 참조
비계 도 구 를 사용한다 고 가정 하면 파일 이름 은 main. js 입 니 다.
import Vue from 'vue'
import App from './App'
//
Vue.prototype.$eventHub= Vue.prototype.$eventHub || new Vue() //
new Vue({
el: '#app',
template: '',
components: {App},
data: {
eventHub: new Vue()
}
})
구성 요소 부분:
홈 페이지: HelloWorld.vue
import back from "@/components/Background";
export default {
name: "HelloWorld",
methods: {
go() {
this.$eventHub.$emit("add-todo", " ");
}
},
components: {
back
}
};
구성 요소 참조:
background
export default {
data() {
return {
bb: " "
};
},
created() {
this.$eventHub.$on("add-todo", this.move);
//
},
methods: {
move(ab) {
console.log(" ");
console.log(ab);
console.log(" ");
}
}
};
최종 인쇄:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue.js + Google Places: 여러 입력 필드 자동 완성경우에 따라 두 개 이상의 입력 필드에 장소 자동 완성 기능을 추가할 수 있습니다. 일반적인 예는 두 위치 사이의 이동 거리를 찾는 것입니다. 이 경우 사용자는 자동 완성 기능이 활성화된 두 개의 입력 필드를 갖게 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.