0
点赞
收藏
分享

微信扫一扫

vue 的provide 和 inject

1.功能说明

在开发过程中,在子组件中如何获取父组件或者祖父级的数据。这个我们之前的做法是在子组件中找到父组件实例,然后使用父组件的数据。这样其实不是很自然。

在vue 中提供了 provide 和 inject 的功能,这个功能的作用是,在父组件中提供某些数据,在子或孙中获取这些数据。

2. 示例

2.1 编辑父页面

<template>
<div>
<input type="text" v-model="config.name">
<Child></Child>
</div>
</template>

<script>
import Child from "@/views/modules/demo/child";
export default {
name: "provide",
components: {Child},
provide(){
return {
config:this.config
}
},
data(){
return {
config:{
name:""
}
}
}
}
</script>

这里我们可以看到我们增加了一个 provide ,这个provide 提供的是一个 config 对象。

2.2 编辑子组件

<template>
<div>
<sun-component></sun-component>
</div>
</template>

<script>

import SunComponent from "@/views/modules/demo/sun";
export default {
name: "child",
components: {SunComponent}
}
</script>

这个组件什么都不做,只是引用孙组件。

2.3 编辑孙组件

<template>
<div>
{{config.name}}
</div>
</template>

<script>
export default {
name: "sunComponent",
//这里我们注入了一个config对象
inject:["config"]
}
</script>

2.4 效果

vue 的provide 和 inject_传递数据

这里我们看到从父组件向孙组件传递数据,这里也是实现了解耦。

举报

相关推荐

0 条评论