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
共享給子組件