provide()
和 inject()
能够实现嵌套组件之间的数据传递。setup()
函数中使用。provide()
函数向下传递数据。inject()
获取上层传递过来的数据。不限层级vue
下面来看一个简单的例子。api
<template> <div> <provideAndInject /> </div> </template> <script> import { provide } from "@vue/composition-api"; // 父组件引入 provide import provideAndInject from "./components/provideAndInject"; // 引入子组件 export default { name: "app", components: { provideAndInject }, setup() { // provide('数据名称', 要传递的数据) provide("customVal", "我是父组件向子组件传递的值"); } }; </script>
<template> <div> <h3>{{ customVal }}</h3> </div> </template> <script> // 子组件导入 inject import { inject } from "@vue/composition-api"; export default { setup() { //调用 inject 函数,经过指定的数据名称,获取到父级共享的数据 const customVal = inject("customVal"); return { customVal }; } }; </script>
ref
建立响应式数据经过provide
共享给子组件