1.props:父组件的数据传递给子组件(数据在子组件中)
(1)在子组件中申明props,props的类型一般为数组类型
window.HomeList ={ template, props:['empList'] }
(2)在父组件中,给子组件所在的标签绑定属性
"empList">
父组件的数据如下:
data(){ return { hobbies:['吃饭','睡觉','打豆豆','看书'], empList:[ {id:1,name:'小梦',salary:8000}, {id:2,name:'小话',salary:2000}, {id:3,name:'小栈',salary:8000}, {id:4,name:'小琴',salary:7000}, {id:5,name:'小爱',salary:6000}, ] }
完成后子组件可以使用props中的数据。
for="item in empList" :key="item.id"> {{item.id}} {{item.name}} {{item.salary}}
2.props 传递函数
(1)所传递的函数写在父组件中,并在给子组件所在的标签绑定属性
methods: { del(index){ this.empList.splice(index,1) } }
:del="del">
(2)在子组件中申明props,接收父组件传递过来的函数名
(3)在子组件中的methods中写上方法,在方法的函数体内调用props中的函数
window.HomeList ={
template,
props:['del'],
methods: {
deleteItem(){
this.del()
}
},
}
(4)在子组件中,添加触发事件
3.自定义事件
(1)在父组件中定义函数
methods: { delHobby(index){ this.hobbies.splice(index,1) } },
(2)在父组件中,给子组件所在的标签绑定事件
"delHobby">
(3)在子组件中,methods中通过$emit触发传递过来的函数
methods: { delHobby(index){ this.$emit('delHobby',index) }
(4)在子组件中添加点击事件
4.插槽 slot 将标签传递给子组件
(1)在子组件申明插槽的位置
"dashboard">
(2)在父组件中,子组件的标签体内添加传入的标签
class="page-header" slot="dashboard">仪表盘