HsuMoonHao HsuMoonHao
首页
  • 前端文章

    • JavaScript
    • 数据结构与算法
  • vue3相关

    • 《JavaScript教程》
GitHub (opens new window)

HsyMoonHao

前端界的小学生
首页
  • 前端文章

    • JavaScript
    • 数据结构与算法
  • vue3相关

    • 《JavaScript教程》
GitHub (opens new window)
  • 前端-设计模式

  • js数据结构与算法

  • js程序设计

  • vue3相关

    • 01.虚拟Dom与diff算法
    • 计算属性
    • watch 侦听器
    • watchEffect高级侦听器
    • 组件和生命周期
    • bem架构
    • 父子组件传值
    • slot插槽
    • provide和inject
    • v-model
    • 自定义指令
    • 自定义hooks
  • 微前端

  • react

  • 前端
  • vue3相关
HsyMoonHao
2023-05-17

provide和inject

# provide

提供一个值,可以被后代组件注入。

  1. 用法
<script setup>
import { ref, provide } from 'vue'
import { fooSymbol } from './injectionSymbols'

// 提供静态值
provide('foo', 'bar')

// 提供响应式的值
const count = ref(0)
provide('count', count)

// 提供时将 Symbol 作为 key
provide(fooSymbol, count)
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# inject

注入一个由祖先组件或整个应用 (通过 app.provide()) 提供的值。

  1. 用法
<script setup>
import { inject } from 'vue'
import { fooSymbol } from './injectionSymbols'

// 注入值的默认方式
const foo = inject('foo')

// 注入响应式的值
const count = inject('count')

// 通过 Symbol 类型的 key 注入
const foo2 = inject(fooSymbol)

// 注入一个值,若为空则使用提供的默认值
const bar = inject('foo', 'default value')

// 注入一个值,若为空则使用提供的工厂函数
const baz = inject('foo', () => new Map())

// 注入时为了表明提供的默认值是个函数,需要传入第三个参数
const fn = inject('function', () => {}, false)
</script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
编辑 (opens new window)
#vue3
上次更新: 2023/05/17, 21:35:56
slot插槽
v-model

← slot插槽 v-model→

最近更新
01
Async和Defer
01-03
02
typescript utils
12-23
03
对SPA的理解
05-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 HsyMoonHao | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式