diff --git a/src/v2/cookbook/debugging-in-vscode.md b/src/v2/cookbook/debugging-in-vscode.md
index 5e6dfd01b..c9e612fcf 100644
--- a/src/v2/cookbook/debugging-in-vscode.md
+++ b/src/v2/cookbook/debugging-in-vscode.md
@@ -48,7 +48,7 @@ module.exports = {
We're assuming the port to be `8080` here. If it's not the case (for instance, if `8080` has been taken and Vue CLI automatically picks another port for you), just modify the configuration accordingly.
-点击在 Activity Bar 里的 Debugger 图标来到 Debug 视图,然后点击那个齿轮图标来配置一个 `launch.json` 的文件,选择 **Chrome/Firefox: Launch** 环境。然后将生成的 `launch.json` 的内容替换成为相应的配置:
+点击在 Activity Bar 里的 Debugger 图标来到 Debug 视图,然后点击那个齿轮图标来配置一个 `launch.json` 的文件,选择 **Chrome/Firefox:Launch** 环境。然后将生成的 `launch.json` 的内容替换成为相应的配置:

@@ -91,7 +91,7 @@ module.exports = {
npm run serve
```
-3. 来到 Debug 视图,选择 **'vuejs: chrome/firefox'** 配置,然后按 F5 或点击那个绿色的 play 按钮。
+3. 来到 Debug 视图,选择**‘vuejs:chrome/firefox’**配置,然后按 F5 或点击那个绿色的 play 按钮。
4. 随着一个新的浏览器实例打开 `http://localhost:8080`,你的断点现在应该被命中了。
diff --git a/src/v2/cookbook/serverless-blog.md b/src/v2/cookbook/serverless-blog.md
index 93780fb89..ad74509c7 100644
--- a/src/v2/cookbook/serverless-blog.md
+++ b/src/v2/cookbook/serverless-blog.md
@@ -39,7 +39,7 @@ import Butter from 'buttercms';
const butter = Butter('your_api_token');
```
-使用 CDN:
+使用 CDN:
```html
@@ -302,4 +302,4 @@ created() {
## 总结
-差不多就是这些了!现在你已经在自己的应用中拥有了一个可以正常工作的 CMS 博客。我们希望这份教程可以帮助你,使你的 Vue.js 开发体验更有乐趣 :)
+差不多就是这些了!现在你已经在自己的应用中拥有了一个可以正常工作的 CMS 博客。我们希望这份教程可以帮助你,使你的 Vue.js 开发体验更有乐趣 🙂
diff --git a/src/v2/guide/installation.md b/src/v2/guide/installation.md
index 007010765..b113a6260 100644
--- a/src/v2/guide/installation.md
+++ b/src/v2/guide/installation.md
@@ -255,7 +255,7 @@ NODE_ENV=production browserify -g envify -e main.js | uglifyjs -c -m > build.js
## 开发版本
-**重要**: GitHub 仓库的 `/dist` 文件夹只有在新版本发布时才会提交。如果想要使用 GitHub 上 Vue 最新的源码,你需要自己构建!
+**重要**:GitHub 仓库的 `/dist` 文件夹只有在新版本发布时才会提交。如果想要使用 GitHub 上 Vue 最新的源码,你需要自己构建!
``` bash
git clone https://github.com/vuejs/vue.git node_modules/vue
diff --git a/src/v2/guide/list.md b/src/v2/guide/list.md
index 1d0b09387..43d1e83ac 100644
--- a/src/v2/guide/list.md
+++ b/src/v2/guide/list.md
@@ -81,7 +81,7 @@ var example2 = new Vue({
结果:
-{% raw%}
+{% raw %}
-
{{ parentMessage }} - {{ index }} - {{ item.message }}
@@ -257,7 +257,7 @@ Vue 将被侦听的数组的变异方法进行了包裹,所以它们也将会
### 替换数组
-变异方法,顾名思义,会改变调用了这些方法的原始数组。相比之下,也有非变异 (non-mutating method) 方法,例如 `filter()`、`concat()` 和 `slice()` 。它们不会改变原始数组,而**总是返回一个新数组**。当使用非变异方法时,可以用新数组替换旧数组:
+变异方法,顾名思义,会改变调用了这些方法的原始数组。相比之下,也有非变异 (non-mutating method) 方法,例如 `filter()`、`concat()` 和 `slice()`。它们不会改变原始数组,而**总是返回一个新数组**。当使用非变异方法时,可以用新数组替换旧数组:
``` js
example1.items = example1.items.filter(function (item) {
@@ -457,7 +457,7 @@ methods: {
上面的代码将只渲染未完成的 todo。
-而如果你的目的是有条件地跳过循环的执行,那么可以将 `v-if` 置于外层元素 (或 [``](conditional.html#在-lt-template-gt-中配合-v-if-条件渲染一整组))上。如:
+而如果你的目的是有条件地跳过循环的执行,那么可以将 `v-if` 置于外层元素 (或 [``](conditional.html#在-lt-template-gt-中配合-v-if-条件渲染一整组)) 上。如:
``` html
@@ -472,7 +472,7 @@ methods: {
> 这部分内容假定你已经了解[组件](components.html)相关知识。你也完全可以先跳过它,以后再回来查看。
-在自定义组件上,你可以像在任何普通元素上一样使用 `v-for` 。
+在自定义组件上,你可以像在任何普通元素上一样使用 `v-for`。
``` html
diff --git a/src/v2/guide/migration.md b/src/v2/guide/migration.md
index e7eee9ead..bbe3b794c 100644
--- a/src/v2/guide/migration.md
+++ b/src/v2/guide/migration.md
@@ -30,15 +30,15 @@ order: 701
- 取决于你使用了哪些旧有的特性。大部分可以通过查找和替换 (find-and-replace) 来实现升级,但有一些可能还是要花点时间。如果你没有遵循最佳实践,Vue 2.0 会尽力强迫你去遵循。这有利于项目的长期运行,但也可能意味着重大重构 (尽管有些需要重构的部分可能已经过时)。
-> 如果我升级到到 Vue 2 ,我还必须同时升级 Vuex 和 Vue Router?
+> 如果我升级到到 Vue 2,我还必须同时升级 Vuex 和 Vue Router?
只有 Vue Router 2 与 Vue 2 保持兼容,所以 Vue Router 是需要升级的,你必须遵循 [Vue Router 迁移方式](migration-vue-router.html)来处理。幸运的是,大多数应用没有很多 router 相关代码,所以迁移可能不会超过一个小时。
-对于 Vuex ,版本 0.8+ 与 Vue 2 保持兼容,所以部分不必强制升级。可以促使你立即升级的唯一理由,是你想要使用那些 Vuex 2 中新的高级特性,比如模块 (modules) 和减少的样板文件 (reduced boilerplate)。
+对于 Vuex,版本 0.8+ 与 Vue 2 保持兼容,所以部分不必强制升级。可以促使你立即升级的唯一理由,是你想要使用那些 Vuex 2 中新的高级特性,比如模块 (modules) 和减少的样板文件 (reduced boilerplate)。
## 模板
-### 片段实例 移除
+### 片段实例移除
每个组件必须只有一个根元素。不再允许片段实例,如果你有这样的模板:
@@ -173,9 +173,9 @@ mounted: function () {
## `v-for`
-### `v-for` 遍历数组时的参数顺序 变更
+### `v-for` 遍历数组时的参数顺序变更
-当包含 `index` 时,之前遍历数组时的参数顺序是 `(index, value)`。现在是 `(value, index)` ,来和 JavaScript 的原生数组方法 (例如 `forEach` 和 `map`) 保持一致。
+当包含 `index` 时,之前遍历数组时的参数顺序是 `(index, value)`。现在是 `(value, index)`,来和 JavaScript 的原生数组方法 (例如 `forEach` 和 `map`) 保持一致。
{% raw %}
@@ -184,7 +184,7 @@ mounted: function () {
{% endraw %}
-### `v-for` 遍历对象时的参数顺序 变更
+### `v-for` 遍历对象时的参数顺序变更
当包含 property 名称/key 时,之前遍历对象的参数顺序是 `(name, value)`。现在是 `(value, name)`,来和常见的对象迭代器 (例如 lodash) 保持一致。
@@ -198,6 +198,7 @@ mounted: function () {
### `$index` and `$key` 移除
已经移除了 `$index` 和 `$key` 这两个隐式声明变量,以便在 `v-for` 中显式定义。这可以使没有太多 Vue 开发经验的开发者更好地阅读代码,并且在处理嵌套循环时也能产生更清晰的行为。
+
{% raw %}
升级方式
@@ -226,7 +227,7 @@ mounted: function () {
{% endraw %}
-### `v-for` 范围值 变更
+### `v-for` 范围值变更
之前,`v-for="number in 10"` 的 `number` 从 0 开始到 9 结束,现在从 1 开始,到 10 结束。
@@ -239,7 +240,7 @@ mounted: function () {
## Props
-### `coerce` Prop 的参数 移除
+### `coerce` Prop 的参数移除
如果需要检查 prop 的值,创建一个内部的 computed 值,而不再在 props 内部去定义,例如:
@@ -283,7 +284,7 @@ computed: {
{% endraw %}
-### `twoWay` Prop 的参数 移除
+### `twoWay` Prop 的参数移除
Props 现在只能单向传递。为了对父组件产生反向影响,子组件需要显式地传递一个事件而不是依赖于隐式地双向绑定。详见:
@@ -298,7 +299,7 @@ Props 现在只能单向传递。为了对父组件产生反向影响,子组
{% endraw %}
-### `v-bind` 的 `.once`和`.sync` 修饰符 移除
+### `v-bind` 的 `.once` 和 `.sync` 修饰符移除
Props 现在只能单向传递。为了对父组件产生反向影响,子组件需要显式地传递一个事件而不是依赖于隐式地双向绑定。详见:
@@ -315,7 +316,7 @@ Props 现在只能单向传递。为了对父组件产生反向影响,子组
### 修改 Props 弃用
-组件内修改 prop 是反模式 (不推荐的) 的。比如,先声明一个 prop ,然后在组件中通过 `this.myProp = 'someOtherValue'` 改变 prop 的值。根据渲染机制,当父组件重新渲染时,子组件的内部 prop 值也将被覆盖。
+组件内修改 prop 是反模式 (不推荐的) 的。比如,先声明一个 prop,然后在组件中通过 `this.myProp = 'someOtherValue'` 改变 prop 的值。根据渲染机制,当父组件重新渲染时,子组件的内部 prop 值也将被覆盖。
大多数情况下,改变 prop 值可以用以下选项替代:
@@ -331,7 +332,7 @@ Props 现在只能单向传递。为了对父组件产生反向影响,子组
### 根实例的 Props 替换
-对于一个根实例来说 (比如:用 `new Vue({ ... })` 创建的实例),只能用 `propsData` 而不是 `props` 。
+对于一个根实例来说 (比如:用 `new Vue({ ... })` 创建的实例),只能用 `propsData` 而不是 `props`。
{% raw %}
@@ -380,9 +381,9 @@ methods: {
## Built-In 指令
-### `v-bind` 真/假值 变更
+### `v-bind` 真/假值变更
-在2.0中使用 `v-bind` 时,只有 `null`, `undefined`,和 `false` 被看作是假。这意味着,`0` 和空字符串将被作为真值渲染。比如 `v-bind:draggable="''"` 将被渲染为 `draggable="true"`。
+在 2.0 中使用 `v-bind` 时,只有 `null`,`undefined`,和 `false` 被看作是假。这意味着,`0` 和空字符串将被作为真值渲染。比如 `v-bind:draggable="''"` 将被渲染为 `draggable="true"`。
对于枚举属性,除了以上假值之外,字符串 `"false"` 也会被渲染为 `attr="false"`。
@@ -395,7 +396,7 @@ methods: {
{% endraw %}
-### 用 `v-on` 监听原生事件 变更
+### 用 `v-on` 监听原生事件变更
现在在组件上使用 `v-on` 只会监听自定义事件 (组件用 `$emit` 触发的事件)。如果要监听根元素的原生事件,可以使用 `.native` 修饰符,比如:
@@ -410,9 +411,9 @@ methods: {
{% endraw %}
-### 带有 `debounce` 的 `v-model`移除
+### 带有 `debounce` 的 `v-model` 移除
-Debouncing 曾经被用来控制 Ajax 请求及其它高耗任务的频率。Vue 中`v-model`的 `debounce` 属性参数使得在一些简单情况下非常容易实现这种控制。但实际上,这是控制了**状态更新**的频率,而不是控制高耗时任务本身。这是个微小的差别,但是会随着应用增长而显现出局限性。
+Debouncing 曾经被用来控制 Ajax 请求及其它高耗任务的频率。Vue 中 `v-model` 的 `debounce` 属性参数使得在一些简单情况下非常容易实现这种控制。但实际上,这是控制了**状态更新**的频率,而不是控制高耗时任务本身。这是个微小的差别,但是会随着应用增长而显现出局限性。
例如在设计一个搜索提示时的局限性:
@@ -460,7 +461,7 @@ new Vue({
{% endraw %}
-使用 `debounce` 参数,便无法观察 "Typing" 的状态。因为无法对输入状态进行实时检测。然而,通过将 `debounce` 与 Vue 解耦,可以仅仅只延迟我们想要控制的操作,从而避开这些局限性:
+使用 `debounce` 参数,便无法观察“Typing”的状态。因为无法对输入状态进行实时检测。然而,通过将 `debounce` 与 Vue 解耦,可以仅仅只延迟我们想要控制的操作,从而避开这些局限性:
``` html