4
4
5
5
## ` setup `
6
6
7
- 一个组件选项,在创建组件 ** 之前** 执行,一旦 ` props ` 被解析,并作为组合式 API 的入口点
7
+ 一个组件选项,在组件被创建 ** 之前** , ` props ` 被解析之后执行。它是组合式 API 的入口。
8
8
9
9
- ** 入参:**
10
10
98
98
99
99
## 生命周期钩子
100
100
101
- 可以使用直接导入的 ` onX ` 函数注册生命周期钩子 :
101
+ 可以通过直接导入 ` onX ` 函数来注册生命周期钩子 :
102
102
103
103
` ` ` js
104
104
import { onMounted, onUpdated, onUnmounted } from 'vue'
@@ -118,11 +118,11 @@ const MyComponent = {
118
118
}
119
119
` ` `
120
120
121
- 这些生命周期钩子注册函数只能在 [` setup() ` ](#setup ) 期间同步使用,因为它们依赖于内部全局状态来定位当前活动实例 (此时正在调用其 ` setup() ` 的组件实例)。在没有当前活动实例的情况下调用它们将导致错误 。
121
+ 这些生命周期钩子注册函数只能在 [` setup() ` ](#setup ) 期间同步使用,因为它们依赖于内部的全局状态来定位当前活动的实例 (此时正在调用其 ` setup() ` 的组件实例)。在没有当前活动实例的情况下,调用它们将会出错 。
122
122
123
- 组件实例上下文也是在生命周期钩子的同步执行期间设置的,因此在生命周期钩子内同步创建的侦听器和计算属性也会在组件卸载时自动删除 。
123
+ 组件实例的上下文也是在生命周期钩子的同步执行期间设置的,因此,在生命周期钩子内同步创建的侦听器和计算属性也会在组件卸载时自动删除 。
124
124
125
- ** 选项 API 生命周期选项和组合式 API 之间的映射**
125
+ ** 选项式 API 的生命周期选项和组合式 API 之间的映射**
126
126
127
127
- ~~ ` beforeCreate ` ~~ - > 使用 ` setup() `
128
128
- ~~ ` created ` ~~ - > 使用 ` setup() `
@@ -142,7 +142,7 @@ const MyComponent = {
142
142
143
143
## Provide / Inject
144
144
145
- ` provide ` 和 ` inject ` 启用依赖注入。只有在使用当前活动实例的 [` setup() ` ](#setup ) 期间才能调用这两者 。
145
+ ` provide ` 和 ` inject ` 启用依赖注入。这两者只能在使用当前活动实例的 [` setup() ` ](#setup ) 期间被调用 。
146
146
147
147
- ** 类型声明** :
148
148
@@ -163,19 +163,19 @@ const MyComponent = {
163
163
): T
164
164
` ` `
165
165
166
- Vue 提供了一个 ` InjectionKey ` 接口,该接口是扩展 ` Symbol ` 的泛型类型。它可用于在提供者和消费者之间同步 inject 值的类型:
166
+ Vue 提供了一个 ` InjectionKey ` 接口,该接口是扩展了 ` Symbol ` 的泛型类型。它可用于在生产者和消费者之间同步 inject 值的类型:
167
167
168
168
` ` ` ts
169
169
import { InjectionKey, provide, inject } from 'vue'
170
170
171
171
const key: InjectionKey<string> = Symbol()
172
172
173
- provide(key, 'foo') // 提供非字符串值将导致错误
173
+ provide(key, 'foo') // 若提供非字符串值将出错
174
174
175
175
const foo = inject(key) // foo 的类型: string | undefined
176
176
` ` `
177
177
178
- 如果使用字符串 key 或非类型化 symbols ,则需要显式声明 inject 值的类型:
178
+ 如果使用了字符串 key 或非类型化的 symbol ,则需要显式声明 inject 值的类型:
179
179
180
180
` ` ` ts
181
181
const foo = inject<string>('foo') // string | undefined
@@ -190,7 +190,7 @@ const MyComponent = {
190
190
` getCurrentInstance ` 支持访问内部组件实例。
191
191
192
192
:::warning
193
- ` getCurrentInstance ` 只会暴露给高阶用户,通常是库作者。对 ` getCurrentInstance ` 的使用在应用代码里是非常不鼓励的 。请** 不要** 把它在组合式 API 中作为获得等同于 ` this ` 的退路来使用 。
193
+ ` getCurrentInstance ` 只暴露给高阶使用场景,典型的比如在库中。强烈反对在应用的代码中使用 ` getCurrentInstance ` 。请** 不要** 把它当作在组合式 API 中获取 ` this ` 的替代方案来使用 。
194
194
:::
195
195
196
196
` ` ` ts
@@ -212,19 +212,19 @@ const MyComponent = {
212
212
` ` ` ts
213
213
const MyComponent = {
214
214
setup() {
215
- const internalInstance = getCurrentInstance() // 工作
215
+ const internalInstance = getCurrentInstance() // 有效
216
216
217
- const id = useComponentId() // 工作
217
+ const id = useComponentId() // 有效
218
218
219
219
const handleClick = () => {
220
- getCurrentInstance() // 不工作
221
- useComponentId() // 不工作
220
+ getCurrentInstance() // 无效
221
+ useComponentId() // 无效
222
222
223
- internalInstance // 工作
223
+ internalInstance // 有效
224
224
}
225
225
226
226
onMounted(() => {
227
- getCurrentInstance() // 工作
227
+ getCurrentInstance() // 有效
228
228
})
229
229
230
230
return () =>
0 commit comments