From 41f3b0977a39b3bfc97f5abddf507051670dbd2e Mon Sep 17 00:00:00 2001 From: dy-xiaodong2022 Date: Thu, 25 Apr 2024 19:24:37 +0800 Subject: [PATCH] docs: translate /guide/components/events --- src/guide/components/events.md | 78 +++++++++++++++++----------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/guide/components/events.md b/src/guide/components/events.md index f8b7a5bc..15bb0b0b 100644 --- a/src/guide/components/events.md +++ b/src/guide/components/events.md @@ -18,13 +18,13 @@ if (typeof window !== 'undefined') { } -# 组件事件 {#component-events} +# 組件事件 {#component-events} -> 此章节假设你已经看过了[组件基础](/guide/essentials/component-basics)。若你还不了解组件是什么,请先阅读该章节。 +> 此章節假設你已經看過了[組件基礎](/guide/essentials/component-basics)。若你還不瞭解組件是什麼,請先閱讀該章節。 -## 触发与监听事件 {#emitting-and-listening-to-events} +## 觸發與監聽事件 {#emitting-and-listening-to-events} -在组件的模板表达式中,可以直接使用 `$emit` 方法触发自定义事件 (例如:在 `v-on` 的处理函数中): +在組件的模板表達式中,可以直接使用 `$emit` 方法觸發自定義事件 (例如:在 `v-on` 的處理函數中): ```vue-html @@ -33,7 +33,7 @@ if (typeof window !== 'undefined') {
-`$emit()` 方法在组件实例上也同样以 `this.$emit()` 的形式可用: +`$emit()` 方法在組件實例上也同樣以 `this.$emit()` 的形式可用: ```js export default { @@ -47,27 +47,27 @@ export default {
-父组件可以通过 `v-on` (缩写为 `@`) 来监听事件: +父組件可以通過 `v-on` (縮寫為 `@`) 來監聽事件: ```vue-html ``` -同样,组件的事件监听器也支持 `.once` 修饰符: +同樣,組件的事件監聽器也支持 `.once` 修飾符: ```vue-html ``` -像组件与 prop 一样,事件的名字也提供了自动的格式转换。注意这里我们触发了一个以 camelCase 形式命名的事件,但在父组件中可以使用 kebab-case 形式来监听。与 [prop 大小写格式](/guide/components/props#prop-name-casing)一样,在模板中我们也推荐使用 kebab-case 形式来编写监听器。 +像組件與 prop 一樣,事件的名字也提供了自動的格式轉換。注意這裡我們觸發了一個以 camelCase 形式命名的事件,但在父組件中可以使用 kebab-case 形式來監聽。與 [prop 大小寫格式](/guide/components/props#prop-name-casing)一樣,在模板中我們也推薦使用 kebab-case 形式來編寫監聽器。 :::tip -和原生 DOM 事件不一样,组件触发的事件**没有冒泡机制**。你只能监听直接子组件触发的事件。平级组件或是跨越多层嵌套的组件间通信,应使用一个外部的事件总线,或是使用一个[全局状态管理方案](/guide/scaling-up/state-management)。 +和原生 DOM 事件不一樣,組件觸發的事件**沒有冒泡機制**。你只能監聽直接子組件觸發的事件。平級組件或是跨越多層嵌套的組件間通信,應使用一個外部的事件總線,或是使用一個[全局狀態管理方案](/guide/scaling-up/state-management)。 ::: -## 事件参数 {#event-arguments} +## 事件參數 {#event-arguments} -有时候我们会需要在触发事件时附带一个特定的值。举例来说,我们想要 `` 组件来管理文本会缩放得多大。在这个场景下,我们可以给 `$emit` 提供一个额外的参数: +有時候我們會需要在觸發事件時附帶一個特定的值。舉例來說,我們想要 `` 組件來管理文本會縮放得多大。在這個場景下,我們可以給 `$emit` 提供一個額外的參數: ```vue-html ``` -然后我们在父组件中监听事件,我们可以先简单写一个内联的箭头函数作为监听器,此函数会接收到事件附带的参数: +然後我們在父組件中監聽事件,我們可以先簡單寫一個內聯的箭頭函數作為監聽器,此函數會接收到事件附帶的參數: ```vue-html ``` -或者,也可以用一个组件方法来作为事件处理函数: +或者,也可以用一個組件方法來作為事件處理函數: ```vue-html ``` -该方法也会接收到事件所传递的参数: +該方法也會接收到事件所傳遞的參數:
@@ -111,12 +111,12 @@ function increaseCount(n) {
:::tip -所有传入 `$emit()` 的额外参数都会被直接传向监听器。举例来说,`$emit('foo', 1, 2, 3)` 触发后,监听器函数将会收到这三个参数值。 +所有傳入 `$emit()` 的額外參數都會被直接傳向監聽器。舉例來說,`$emit('foo', 1, 2, 3)` 觸發後,監聽器函數將會收到這三個參數值。 ::: -## 声明触发的事件 {#declaring-emitted-events} +## 聲明觸發的事件 {#declaring-emitted-events} -组件可以显式地通过 [`defineEmits()`](/api/sfc-script-setup#defineprops-defineemits) 宏[`emits`](/api/options-state#emits) 选项来声明它要触发的事件: +組件可以顯式地通過 [`defineEmits()`](/api/sfc-script-setup#defineprops-defineemits) 宏[`emits`](/api/options-state#emits) 選項來聲明它要觸發的事件:
@@ -126,7 +126,7 @@ defineEmits(['inFocus', 'submit']) ``` -我们在 `