vue兄弟组件之间传值和方法调用 |
您所在的位置:网站首页 › vue组件调用另一个组件中的方法 › vue兄弟组件之间传值和方法调用 |
vue兄弟组件之间传值和方法调用
1.兄弟组件相互传值 1.1 vuex传值 实现效果:兄弟组件之间传值,child1的值发生变化,child2值也能随之发生变化 子组件一代码,child1.vue,点击button,连接store.js mutations中的changeTitle事件,进行更改值 更改title的值 {{title}} export default { data() { return { title: "" }; }, methods: { handleClickChangeTitle(title){ this.$store.commit("changeTitle",title) } } }
子组件二代码:child2.vue直接显示store.js中state中的值即可 {{$store.state.title}}store.js代码, import Vue from "vue"; import Vuex from "vuex"; Vue.use(Vuex); export default new Vuex.Store({ state: { title: "" }, mutations: { changeTitle(state, title) { state.state = title; } } });
1.2 $emit传值,props接收 使用$emit将child1.vue的值给父组件,父组件将值传给child2.vue,child2.vue使用props接收 parent.vue 我是父组件 import child1 from "child1";//文件地址 import child2 from "child2";//文件地址 export default { data() { return { title: "" }; }, components: { child1, child2 }, methods: { handleClickChangeTitle(title){//将改方法传递给child1组件 this.title = title } } }child1.vue 我是child1组件 更改title的值 {{title}} export default { data() { return { title: "" }; }, methods: { handleClickChangeTitle(title){ this.$emit("handleClickChange",title)//连接父组件的handleClickChange方法,同时将值传递给父组件 } } }child2.vue {{ptitle}} export default { //接收父组件穿过来的值ptitle props:{ptitle:{ type: String}} }1.兄弟组件相互调用方法 父组件代码 我是父组件 import child1 from "child1";//文件地址 import child2 from "child2";//文件地址 export default { data() { return { title: "" }; }, components: { child1, child2 }, methods: { handleClickSearch() { //header组件和home组件相互通信 this.$refs.changeTitle.changeTitle(); } } }child1.vue代码 我是child1组件 更改title的值 {{title}} export default { data() { return { title: "" }; }, methods: { handleClickChangeTitle(title){ this.$emit("handleClickChange",title)//连接父组件的handleClickChange方法,同时将值传递给父组件 } } }child2.vue代码 export default { methods: { changeTitle() { console.log("我是child2组件,changeTitle方法由child1组件触发") } } }后期继续更新! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |