Skip to content

Commit be2776e

Browse files
DaZuiZuicursoragent
andcommitted
Merge branch 'main' into sync
把 origin/main 領先的 dependabot 升級與翻譯(#53 computed.md、#3403 props 註腳、slots 條件插槽繁中、vitepress 1.4→1.5、vue 3.5.x 系列等)合進 sync,解掉 PR #65 的 CONFLICTING。 衝突處理: - src/guide/essentials/computed.md:採用 main 上的繁中翻譯(sync 端是簡中遺留) - src/guide/components/slots.md:採用 main 上的繁中翻譯(sync 端是 upstream 引入的英文) - pnpm-lock.yaml:採用 sync 的版本以匹配本次升級到 vitepress 2.0-alpha / vue 3.5.32 等 Co-authored-by: Cursor <cursoragent@cursor.com>
2 parents 34f0f87 + 6796a95 commit be2776e

3 files changed

Lines changed: 11 additions & 12 deletions

File tree

src/guide/components/props.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ console.log(props.foo)
1818
</script>
1919
```
2020

21-
在沒有使用 `<script setup>` 的組件中,prop 可以使用 [`props`](/api/options-state#props) 選項來聲明:
21+
在沒有使用 `<script setup>` 的組件中,props 可以使用 [`props`](/api/options-state#props) 選項來聲明:
2222

2323
```js
2424
export default {
@@ -30,7 +30,7 @@ export default {
3030
}
3131
```
3232

33-
注意傳遞給 `defineProps()` 的參數和提供給 `props` 選項的值是相同的,兩種聲明方式背後其實使用的都是 prop 選項。
33+
注意傳遞給 `defineProps()` 的參數和提供給 `props` 選項的值是相同的,兩種聲明方式背後其實使用的都是 props 選項。
3434

3535
</div>
3636

@@ -50,7 +50,7 @@ export default {
5050

5151
</div>
5252

53-
除了使用字符串數組來聲明 prop 外,還可以使用對象的形式:
53+
除了使用字符串數組來聲明 props 外,還可以使用對象的形式:
5454

5555
<div class="options-api">
5656

@@ -217,7 +217,7 @@ export default {
217217

218218
對於組件名我們推薦使用 [PascalCase](/guide/components/registration#component-name-casing),因為這提高了模板的可讀性,能幫助我們區分 Vue 組件和原生 HTML 元素。然而對於傳遞 props 來說,使用 camelCase 並沒有太多優勢,因此我們推薦更貼近 HTML 的書寫風格。
219219

220-
### 靜態 vs. 動態 Prop {#static-vs-dynamic-props}
220+
### 靜態 vs. 動態 Props {#static-vs-dynamic-props}
221221

222222
至此,你已經見過了很多像這樣的靜態值形式的 props:
223223

src/guide/components/slots.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,14 @@ function BaseLayout(slots) {
294294
}
295295
```
296296

297-
<!-- TODO: translation -->## Conditional Slots {#conditional-slots}
297+
## 条件插槽 {#conditional-slots}
298298

299-
Sometimes you want to render something based on whether or not content has been passed to a slot.
299+
有時候,你可能希望根據插槽的存在與否來渲染內容。
300300

301-
You can use the [$slots](/api/component-instance.html#slots) property in combination with a [v-if](/guide/essentials/conditional.html#v-if) to achieve this.
301+
你可以結合 [$slots](/api/component-instance.html#slots) 屬性和 [v-if](/guide/essentials/conditional.html#v-if) 來實現這一點。
302302

303-
In the example below we define a Card component with three conditional slots: `header`, `footer` and the `default` one.
304-
When content for the header / footer / default is present, we want to wrap it to provide additional styling:
303+
在下面的示例中,我們定義了一個 Card 組件,包含三個條件性插槽:`header``footer` `default`
304+
header / footer / default 插槽存在時,我們希望對它們進行包裝,以提供額外的樣式:
305305

306306
```vue-html
307307
<template>
@@ -321,7 +321,7 @@ When content for the header / footer / default is present, we want to wrap it to
321321
</template>
322322
```
323323

324-
[Try it in the Playground](https://play.vuejs.org/#eNqVVMtu2zAQ/BWCLZBLIjVoTq4aoA1yaA9t0eaoCy2tJcYUSZCUKyPwv2dJioplOw4C+EDuzM4+ONYT/aZ1tumBLmhhK8O1IxZcr29LyTutjCN3zNRkZVRHLrLcXzz9opRFHvnIxIuDTgvmAG+EFJ4WTnhOCPnQAqvBjHFE2uvbh5Zbgj/XAolwkWN4TM33VI/UalixXvjyo5yeqVVKOpCuyP0ob6utlHL7vUE3U4twkWP4hJq/jiPP4vSSOouNrHiTPVolcclPnl3SSnWaCzC/teNK2pIuSEA8xoRQ/3+GmDM9XKZ41UK1PhF/tIOPlfSPAQtmAyWdMMdMAy7C9/9+wYDnCexU3QtknwH/glWi9z1G2vde1tj2Hi90+yNYhcvmwd4PuHabhvKNeuYu8EuK1rk7M/pLu5+zm5BXyh1uMdnOu3S+95pvSCWYtV9xQcgqaXogj2yu+AqBj1YoZ7NosJLOEq5S9OXtPZtI1gFSppx8engUHs+vVhq9eVhq9ORRrXdpRyseSqfo6SmmnONK6XTw9yis24q448wXSG+0VAb3sSDXeiBoDV6TpWDV+ktENatrdMGCfAoBfL1JYNzzpINJjVFoJ9yKUKho19ul6OFQ6UYPx1rjIpPYeXIc/vXCgjetawzbni0dPnhhJ3T3DMVSruI=)
324+
[在演練場中嘗試一下](https://play.vuejs.org/#eNqVVMtu2zAQ/BWCLZBLIjVoTq4aoA1yaA9t0eaoCy2tJcYUSZCUKyPwv2dJioplOw4C+EDuzM4+ONYT/aZ1tumBLmhhK8O1IxZcr29LyTutjCN3zNRkZVRHLrLcXzz9opRFHvnIxIuDTgvmAG+EFJ4WTnhOCPnQAqvBjHFE2uvbh5Zbgj/XAolwkWN4TM33VI/UalixXvjyo5yeqVVKOpCuyP0ob6utlHL7vUE3U4twkWP4hJq/jiPP4vSSOouNrHiTPVolcclPnl3SSnWaCzC/teNK2pIuSEA8xoRQ/3+GmDM9XKZ41UK1PhF/tIOPlfSPAQtmAyWdMMdMAy7C9/9+wYDnCexU3QtknwH/glWi9z1G2vde1tj2Hi90+yNYhcvmwd4PuHabhvKNeuYu8EuK1rk7M/pLu5+zm5BXyh1uMdnOu3S+95pvSCWYtV9xQcgqaXogj2yu+AqBj1YoZ7NosJLOEq5S9OXtPZtI1gFSppx8engUHs+vVhq9eVhq9ORRrXdpRyseSqfo6SmmnONK6XTw9yis24q448wXSG+0VAb3sSDXeiBoDV6TpWDV+ktENatrdMGCfAoBfL1JYNzzpINJjVFoJ9yKUKho19ul6OFQ6UYPx1rjIpPYeXIc/vXCgjetawzbni0dPnhhJ3T3DMVSruI=)
325325

326326
## 動態插槽名 {#dynamic-slot-names}
327327

src/guide/essentials/computed.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,7 @@ const publishedBooksMessage = computed(() => {
122122

123123
[在演練場中嘗試一下](https://play.vuejs.org/#eNp1kE9Lw0AQxb/KI5dtoTainkoaaREUoZ5EEONhm0ybYLO77J9CCfnuzta0vdjbzr6Zeb95XbIwZroPlMySzJW2MR6OfDB5oZrWaOvRwZIsfbOnCUrdmuCpQo+N1S0ET4pCFarUynnI4GttMT9PjLpCAUq2NIN41bXCkyYxiZ9rrX/cDF/xDYiPQLjDDRbVXqqSHZ5DUw2tg3zP8lK6pvxHe2DtvSasDs6TPTAT8F2ofhzh0hTygm5pc+I1Yb1rXE3VMsKsyDm5JcY/9Y5GY8xzHI+wnIpVw4nTI/10R2rra+S4xSPEJzkBvvNNs310ztK/RDlLLjy1Zic9cQVkJn+R7gIwxJGlMXiWnZEq77orhH3Pq2NH9DjvTfpfSBSbmA==)
124124

125-
126-
我们在這裡声明了一个计算属性 `publishedBooksMessage``computed()` 函数預期传递一个 [getter 函数](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description),返回值是一个**计算的 ref**。与普通 ref 类似,您可以以 `publishedBooksMessage.value` 的形式访问计算结果。在模板中,计算 ref 也会自动解包,因此您可以在模板表达式中引用它们,而无需使用 `.value`
125+
我們在這裡定義了一個計算屬性 `publishedBooksMessage``computed()` 方法期望接收一個 [getter 函數](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get#description),它的返回值是一個**計算屬性 ref**。和一般的 ref 相似,你可以通過 `publishedBooksMessage.value` 來訪問計算的結果。計算屬性 ref 也會在模板中自動解包,所以你可以在模板表達式中引用時而無需添加 `.value`
127126

128127
Vue 的計算屬性會自動追蹤響應式依賴。它會檢測到 `publishedBooksMessage` 依賴於 `author.books`,所以當 `author.books` 改變時,任何依賴於 `publishedBooksMessage` 的綁定都會同時更新。
129128

0 commit comments

Comments
 (0)