赞
踩
provide 用于:让父组件 传递数据。
inject 用于:让后代组件 接收数据。
- // 传递数据
- import { provide } from 'vue';
- provide('数据名', 数据);
-
- // 接收数据
- import { inject } from 'vue';
- let 变量 = inject('数据名');
- <template>
- <h3>我是第一层组件</h3>
- <p>{{ info.name }} : {{ info.age }}</p>
- <hr />
- <Two></Two>
- </template>
-
- <script setup>
- // 引用 provide 函数
- import { provide, reactive } from 'vue'
- import Two from "../components/Two.vue"
- let info = reactive({ name: "张三", age: 18 });
- // 给后代组件传递数据
- provide('info', info);
- </script>
- <template>
- <h3>我是第二层组件</h3>
- <p>{{ info.name }} : {{ info.age }}</p>
- <hr />
- <Three></Three>
- </template>
-
- <script setup>
- // 引用 inject 函数
- import { inject } from 'vue'
- import Three from "../components/Three.vue"
- // 接收数据
- let info = inject('info');
- </script>
- <template>
- <h3>我是第三层组件</h3>
- <p>{{ info.name }} : {{ info.age }}</p>
- </template>
-
- <script setup>
- // 引用 inject 函数
- import { inject } from 'vue'
- // 接收数据
- let info = inject('info');
- </script>
注:传递的数据可以在任意一层后代组件中使用。
原创作者:吴小糖
创作时间: 2024.3.26
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。