HLJ 发布于
2024-05-23 14:52:19
68阅读

依赖注入

上一篇文章:

插槽 Slots

下一篇文章:

异步组件

Provide (提供)

  • 要为组件后代提供数据,需要使用到 provide() 函数:
<script setup>
import { provide } from 'vue'

provide(/* 注入名 */ 'message', /* 值 */ 'hello!')
</script>
  • 如果不使用 <script setup>,请确保 provide() 是在 setup() 同步调用的:
import { provide } from 'vue'

export default {
  setup() {
    provide(/* 注入名 */ 'message', /* 值 */ 'hello!')
  }
}
  • provide()函数接收两个参数。第一个参数被称为注入名,可以是一个字符串或是一个 Symbol。后代组件会用注入名来查找期望注入的值。一个组件可以多次调用 provide(),使用不同的注入名,注入不同的依赖值。

  • 第二个参数是提供的值,值可以是任意类型,包括响应式的状态,比如一个 ref:

import { ref, provide } from 'vue'

const count = ref(0)
provide('key', count)

Inject (注入)

  • 要注入上层组件提供的数据,需使用 inject() 函数:
<script setup>
import { inject } from 'vue'

const message = inject('message')
</script>
  • 如果提供的值是一个 ref,注入进来的会是该 ref 对象,而不会自动解包为其内部的值。这使得注入方组件能够通过 ref 对象保持了和供给方的响应性链接。
  • 同样的,如果没有使用 <script setup>,inject() 需要在 setup() 内同步调用:
import { inject } from 'vue'

export default {
  setup() {
    const message = inject('message')
    return { message }
  }
}
当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2024-05-23/657.html
最后生成于 2024-06-25 13:50:39
上一篇文章:

插槽 Slots

下一篇文章:

异步组件

此内容有帮助 ?
0