注:組件信息流轉的時候只能單向
1 > 父子傳參
傳參:經過屬性
prop:傳遞數據vue
a.父組件傳參給子組件vuex
子組件: <ul> <li v-for="item in dataList"></li> </ul> export default { prop: { //prop接收傳過來的參數 dataList: { type:Array, required:true //校驗 } }, data() { return { dataList: this.dataList } } } 父組件 <Position :data-list='List'></Position>
b.子組件傳參給父組件瀏覽器
父組件傳一個函數給子組件 子組件: export default { prop: ['id','onbuttonInfo'], data() { return { posid: this.id, title: 'abc' } }, mounted() { this.onbuttonInfo(this.title) } } 父組件: <Position :id='sid' :onbuttonInfo='handleButonInfo'>職位列表</Position> methods:{ handleButonInfo (msg) { console.log(msg) } } 注意:瀏覽器的坑 會把buttonInfo 都改爲全小寫
2 > 動態路由傳參函數
方式一:path:'/main/:變量名' 方式二: 方法: 傳: this.$router.push({name: 'goodslist',params:{"list":this.list}}) 接收: data() { return { goodsList: this.$route.query.list, val: '' } },
3 > 跳級組件傳參 bus總線ui
一、components中建Bus.js文件 import Vue from 'vue' const Bus = new Vue({ }) export default Bus 二、index。vue中 import Bus from '../Bus.js' mounted() { Bus.$on('on-msg',(data)=>{ //訂閱 綁定事 接收參數 console.log(data); }) } 三、positionList.vue import Bus from './Bus.js' methods:{ do() { //發佈 傳參 this.$router.push({name:'search',}) Bus.$emit('on-msg',120) } }
4 > vuex傳參(重點)請查看個人vuex文章 啦啦~~~~this