路由配好了 再传个参呗
注:组件信息流转的时候只能单向
1 > 父子传参
传参:通过属性
prop:传递数据
a.父组件传参给子组件
子组件:
<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总线
1、components中建Bus.js文件
import Vue from 'vue'
const Bus = new Vue({
})
export default Bus
2、index。vue中
import Bus from '../Bus.js'
mounted() {
Bus.$on('on-msg',(data)=>{ //订阅 绑定事 接收参数
console.log(data);
})
}
3、positionList.vue
import Bus from './Bus.js'
methods:{
do() { //发布 传参
this.$router.push({name:'search',})
Bus.$emit('on-msg',120)
}
}
4 > vuex传参(重点)请查看我的vuex文章 啦啦~~~~