diff --git a/src/guide/data-methods.md b/src/guide/data-methods.md
index 179889d88..fef5881f9 100644
--- a/src/guide/data-methods.md
+++ b/src/guide/data-methods.md
@@ -1,10 +1,8 @@
-
+# Data Property 和方法
-# Data Properties and Methods
+## Data Property
-## Data Properties
-
-The `data` option for a component is a function. Vue calls this function as part of creating a new component instance. It should return an object, which Vue will then wrap in its reactivity system and store on the component instance as `$data`. For convenience, any top-level properties of that object are also exposed directly via the component instance:
+组件的 `data` 选项是一个函数。Vue 在创建新组件实例的过程中调用此函数。它应该返回一个对象,然后 Vue 会通过响应性系统将其包裹起来,并以 `$data` 的形式存储在组件实例中。为方便起见,该对象的任何顶级 property 也直接通过组件实例暴露出来:
```js
const app = Vue.createApp({
@@ -18,24 +16,24 @@ const vm = app.mount('#app')
console.log(vm.$data.count) // => 4
console.log(vm.count) // => 4
-// Assigning a value to vm.count will also update $data.count
+// 修改 vm.count 的值也会更新 $data.count
vm.count = 5
console.log(vm.$data.count) // => 5
-// ... and vice-versa
+// 反之亦然
vm.$data.count = 6
console.log(vm.count) // => 6
```
-These instance properties are only added when the instance is first created, so you need to ensure they are all present in the object returned by the `data` function. Where necessary, use `null`, `undefined` or some other placeholder value for properties where the desired value isn't yet available.
+这些实例 property 仅在实例首次创建时被添加,所以你需要确保它们都在 `data` 函数返回的对象中。必要时,要对尚未提供所需值的 property 使用 `null`、`undefined` 或其他占位的值。。
-It is possible to add a new property directly to the component instance without including it in `data`. However, because this property isn't backed by the reactive `$data` object, it won't automatically be tracked by [Vue's reactivity system](reactivity.html).
+直接将不包含在 `data` 中的新 property 添加到组件实例是可行的。但由于该 property 不在背后的响应式 `$data` 对象内,所以 [Vue 的响应性系统](reactivity.html)不会自动跟踪它。
-Vue uses a `$` prefix when exposing its own built-in APIs via the component instance. It also reserves the prefix `_` for internal properties. You should avoid using names for top-level `data` properties that start with either of these characters.
+Vue 使用 `$` 前缀通过组件实例暴露自己的内置 API。它还为内部 property 保留 `_` 前缀。你应该避免使用这两个字符开头的的顶级 `data` property 名称。
-## Methods
+## 方法
-To add methods to a component instance we use the `methods` option. This should be an object containing the desired methods:
+我们用 `methods` 选项向组件实例添加方法,它应该是一个包含所需方法的对象:
```js
const app = Vue.createApp({
@@ -44,7 +42,7 @@ const app = Vue.createApp({
},
methods: {
increment() {
- // `this` will refer to the component instance
+ // `this` 指向该组件实例
this.count++
}
}
@@ -59,17 +57,17 @@ vm.increment()
console.log(vm.count) // => 5
```
-Vue automatically binds the `this` value for `methods` so that it always refers to the component instance. This ensures that a method retains the correct `this` value if it's used as an event listener or callback. You should avoid using arrow functions when defining `methods`, as that prevents Vue from binding the appropriate `this` value.
+Vue 自动为 `methods` 绑定 `this`,以便于它始终指向组件实例。这将确保方法在用作事件监听或回调时保持正确的 `this` 指向。在定义 `methods` 时应避免使用箭头函数,因为这会阻止 Vue 绑定恰当的 `this` 指向。
-Just like all other properties of the component instance, the `methods` are accessible from within the component's template. Inside a template they are most commonly used as event listeners:
+这些 `methods` 和组件实例的其它所有 property 一样可以在组件的模板中被访问。在模板中,它们通常被当做事件监听使用:
```html
```
-In the example above, the method `increment` will be called when the `