vue 高级属性父组件provide向子组件发送数据,子组件通过inject接收数据

以前父组件向子组件中传值是通过props传值,子组件不能更改父组件中的值,但是可以通过从父组件中获取的值定义给自己的data值,这里父组件可以通过provide向子组件传递自己组件中的data值,子组件通过inject获取父组件提供的值代码如下:

定义一个子组件:

<template>
<div>
{{demo}}
</div>
</template>
<script>
export default {
name: "childone",
inject: ['for'],
data ()
{
return {
demo: this.for
}
},
父组件:
<template>
<div class="hello">
<childe-one></childe-one>
</div>
</template>

<script>
import comone from './com-one'
import ChildeOne from './childone'
export default {
components : {
ChildeOne
},
provide() {
return {for: this.demo}
},
data () {
return {
demo:'中国',
}
}
}
</script>
在父组件中定义
provide方法返回属性对象,属性为for,属性值是组件中的data值,子主件childe-one通过inject接收父组件传递的for,子组件在自己的data中定义变量demo接收父组件的for,这样就实现了
父组件传递子组件的值,
原文地址:https://www.cnblogs.com/zhx119/p/10147519.html