@@ -121,38 +121,38 @@ defineProps<{
121121
122122## 响应式 Props 解构 <sup class =" vt-badge " data-text =" 3.5+ " /> \*\* {#reactive-props-destructure}
123123
124- Vue 的响应系统基于属性访问跟踪状态的使用情况。例如,在计算属性或观察者中访问 ` props.foo ` 时,` foo ` 属性将被跟踪为依赖项。
124+ Vue 的响应系统基于属性访问跟踪状态的使用情况。例如,在计算属性或侦听器中访问 ` props.foo ` 时,` foo ` 属性将被跟踪为依赖项。
125125
126126因此,在以下代码的情况下:
127127
128128``` js
129129const { foo } = defineProps ([' foo' ])
130130
131131watchEffect (() => {
132- // runs only once before 3.5
133- // re-runs when the "foo" prop changes in 3.5+
132+ // 在 3.5 之前只运行一次
133+ // 在 3.5+ 中在 "foo" prop 变化时重新执行
134134 console .log (foo)
135135})
136136```
137137
138- 在 3.4 版本及以下 ,` foo ` 是一个实际的常量,永远不会改变。在 3.5 版本及以上,Vue 的编译器会自动在相同 ` <script setup> ` 块中访问由 ` defineProps ` 解构的变量时,在代码前自动添加 ` props. ` 。因此,上面的代码等同于以下代码:
138+ 在 3.4 及以下版本 ,` foo ` 是一个实际的常量,永远不会改变。在 3.5 及以上版本,当在同一个 ` <script setup> ` 代码块中访问由 ` defineProps ` 解构的变量时,Vue 编译器会自动在前面添加 ` props. ` 。因此,上面的代码等同于以下代码:
139139
140140``` js {5}
141141const props = defineProps ([' foo' ])
142142
143143watchEffect (() => {
144- // `foo` transformed to `props.foo` by the compiler
144+ // `foo` 由编译器转换为 `props.foo`
145145 console .log (props .foo )
146146})
147147```
148148
149- 此外,您可以使用 JavaScript 的原生默认值语法为 props 声明默认值。当使用基于类型的 props 声明时,这是特别有用的 。
149+ 此外,你可以使用 JavaScript 原生的默认值语法声明 props 默认值。这在使用基于类型的 props 声明时特别有用 。
150150
151151``` ts
152152const { foo = ' hello' } = defineProps <{ foo? : string }>()
153153```
154154
155- 如果您希望在您的 IDE 中在解构的 props 和普通变量之间有更多视觉区分 ,Vue 的 VSCode 扩展提供了一个设置来启用解构 props 的内联提示。
155+ 如果你希望在您的 IDE 中在解构的 props 和普通变量之间有更多视觉上的区分 ,Vue 的 VSCode 扩展提供了一个设置来启用解构 props 的内联提示。
156156
157157### 将解构的 props 传递到函数中
158158
@@ -164,21 +164,21 @@ const { foo } = defineProps(['foo'])
164164watch (foo, /* ... */ )
165165```
166166
167- 由于它等价于 ` watch(props.foo, ...) ` - 我们传递的是一个值而不是一个响应式数据源给 ` watch ` ,所以这并不会按预期工作。事实上 ,Vue 的编译器会捕捉这种情况并抛出警告 。
167+ 这并不会按预期工作,因为它等价于 ` watch(props.foo, ...) ` ——我们给 ` watch ` 传递的是一个值而不是响应式数据源。实际上 ,Vue 的编译器会捕捉这种情况并发出警告 。
168168
169- 与我们可以使用 ` watch(() => props.foo, ...) ` 监视普通 prop 类似,我们也可以通过将其包装在 getter 中来监视解构的 prop:
169+ 与我们可以使用 ` watch(() => props.foo, ...) ` 侦听普通 prop 类似,我们也可以通过将其包装在 getter 中来侦听解构的 prop:
170170
171171``` js
172172watch (() => foo, /* ... */ )
173173```
174174
175- 此外,这是推荐的方法,当我们需要将解构的 prop 传递到外部函数中并保持响应性时。
175+ 此外,当我们需要传递解构的 prop 到外部函数中并保持响应性时,这是推荐做法:
176176
177177``` js
178178useComposable (() => foo)
179179```
180180
181- 外部函数在需要跟踪提供的属性的更改时可以调用 getter( 或使用 [ toValue] ( /api/reactivity-utilities.html#tovalue ) 进行规范化) 。例如,在计算属性或观察者的 getter 中。
181+ 外部函数可以调用 getter ( 或使用 [ toValue] ( /api/reactivity-utilities.html#tovalue ) 进行规范化) 来追踪提供的 prop 变更 。例如,在计算属性或侦听器的 getter 中。
182182
183183</div >
184184
0 commit comments