provide inject
- provide 选项应该是一个对象或返回一个对象的函数。该对象包含可注入其子孙的 property。
- inject 选项应该是一个字符串数组或一个对象
- 父组件有一个 provide 选项来提供数据,子组件有一个 inject 选项来开始使用这个数据
<body>
<div id="app">
<Parent></Parent>
</div>
</body>
<script>
Vue.component('cp1', {
template: `<div>我是cp1的组件 provide a:{{a}}</div>`,
inject: ['a']
})
Vue.component('cp2', {
template: `<div>我是cp2的组件 provide c:{{c}} d:{{d}}</div>`,
inject: {
newc: 'c',
c: 'c',
d: {
from: 'd',
default: '我是默认值'
}
}
})
Vue.component('Parent', {
template: `<div>
我是Parent组件 provide a:{{a}}
<cp1></cp1>
<cp2></cp2>
</div>`,
inject: ['a'],
provide () {
return {
c: 'hi weekend is coming',
}
}
})
new Vue({
el: '#app',
provide: {
a: 1
}
})
</script>