提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Vue组件中的六种通信方式(下)
四、消息订阅和发布(pubsub)
原理:需要接收数据的组件订阅消息,提供数据的发布消息
- 作用:一种组件之间的通信方式,适合于任意组件间通信
- 使用步骤:
五.vue3中provide和reject
使用场景:祖与后代组件间通信
} 2.子组件中
setup(){
....
let car = inject("car")
....
return{
car
}
}
六.Vuex
环境配置
- 下载vuex npm i vuex
- 在创建名为store的文件夹,在其下创建一个index.js文件
import vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)
const actions = {}
const mutations ={}
const state = {}
export default {}
import vue from "vue"
import store from "./store/index.js"
new Vue({
render:h=>h("#app")
store
}).$mount("#app")
简单使用
import vue from "vue"
import Vuex from "vuex"
Vue.use(Vuex)
const actions = {
handler1(context,value){
context.commit("handler2",value)
}
}
const mutations ={
handler2(state,value){
state.sum +=value
}
}
const state = {
sum :0
}
export default {
actions,
mutations,
state
}
如何在组件中触发
<button @click="addSum">点击sum++</button>
methods:{
addSum(){
this.$store.dispatch("handler1",1)
this.$store.commit("hander2",1)
}
}
注意点:组件中读取vuex中的数据:$store.state.sum
组件中修改vuex中的数据:$store.dispatch(‘action中的方法名’,数据) 或 $store.commit(‘mutations中的方法名’,数据)
备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,也就是不写dispatch,直接编写commit[
vuex详细使用请参照下文!!!
|