<body>
<div id="app"></div>
</body>
<script>
const app = Vue.createApp({
setup() {
const { ref, provide } = Vue;
const name = ref('zhangsan');
// 定义修改方法在父组件
const changeName = (value) => {
name.value = value;
}
// 通过provide传递参数
provide('name', name);
provide('changeName', changeName);
return {
}
},
template: `<child />`
})
app.component('child', {
template: `<div @click="handleChangeName">{{name}}</div>`,
setup() {
const { inject } = Vue;
// 获取参数
const name = inject('name');
const changeName = inject('changeName');
// 调用修改方法修改父组件的值
const handleChangeName = () => {
changeName('lisi')
}
return {
name,
handleChangeName
}
}
})
const vm = app.mount("#app");
</script>
Vue 3 provide 和 inject 传参
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成...
- vue3已release了,一些新特性也需要了解下,在多层组件传递参数情况下,provide是更好的选择 组合式提...
- 使用provide和inject的Vue依赖项注入非常适合构建Vue3插件或避免prop多层传递。 尽管不经常使用...
- Vue3 中使用 provide inject 刷新部分路由页面 其中原理就是使用 provide 提供一个 re...