Skip to content

Commit 70117b8

Browse files
authored
Merge pull request #13 from vuefe/2.0-cn
update
2 parents eff5445 + aea72d7 commit 70117b8

15 files changed

+113
-114
lines changed

src/api/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,9 +998,9 @@ type: api
998998

999999
- **用法:**
10001000

1001-
观察 Vue 实例的一个表达式或计算函数。回调的参数为新值和旧值。表达式可以是某个键路径或任意合法绑定表达式。
1001+
观察 Vue 实例变化的一个表达式或计算属性函数。回调函数的得到参数为新值和旧值。表达式可以是某个键路径或任意合法绑定表达式。
10021002

1003-
<p class="tip">注意:在修改(不是替换)对象或数组时,旧值将与新值相同,因为它们索引同一个对象/数组。Vue 不会保留修改之前值的副本。</p>
1003+
<p class="tip">注意:在变异(不是替换)对象或数组时,旧值将与新值相同,因为它们索引同一个对象/数组。Vue 不会保留变异之前值的副本。</p>
10041004

10051005
- **示例:**
10061006

src/guide/comparison.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ Vue 和 React 也提供提供功能性组件,这些组件都是没有声明,
8787

8888
在React中,你需要在每个地方去实现 `shouldComponentUpdate` ,并且用immutable数据结构才能实现完全完全优化的 re-renders 。在 Vue 中,组件的依赖被自动追踪,所以当这些依赖项变动时,它才会更新。在长列表中,有时候需要进一步优化的话,只需要在每项上添加 `key` 属性。
8989

90-
这意味着,由于Vue内改进过的渲染性能,更新未经优化的Vue回避未经优化的React要快的多。甚至全面优化过的React通常也会慢于未加处理的Vue。
90+
这意味着,由于Vue内改进过的渲染性能,更新未经优化的Vue会比未经优化的React要快的多。甚至全面优化过的React通常也会慢于未加处理的Vue。
9191

9292
#### 开发中
9393

@@ -164,15 +164,15 @@ JSX的渲染功能有一些优势:
164164

165165
还没有结束。Vue拥抱HTML,而不是用JavaScript重塑它。在模板内,Vue也允许你用预处理器比如Pub(原名 Jade) 。
166166

167-
React 生态也有一个[项目](https://wix.github.io/react-templates/)允许你写摸吧,但是有一些缺点:
167+
React 生态也有一个[项目](https://wix.github.io/react-templates/)允许你写模板,但是有一些缺点:
168168

169169
- 功能远没有 Vue 模板系统的丰富。
170170
- 需要从组件文件中分离出HTML代码。
171171
- 这是个第三方库,而非官方支持,可能未来核心库更新就不再支持。
172172

173173
#### CSS的组件作用域
174174

175-
除非你把组件分布在多个文件上(例如 [CSS Modules](https://github.com/gajus/react-css-modules)),要不作用域内的CSS就会暴警告。非常简单的CSS还可以工作,但是稍微复杂点的,比如悬停状态、媒体查询、伪类选择符要么会被修改要么就不能用。
175+
除非你把组件分布在多个文件上(例如 [CSS Modules](https://github.com/gajus/react-css-modules)),要不作用域内的CSS就会报警告。非常简单的CSS还可以工作,但是稍微复杂点的,比如悬停状态、媒体查询、伪类选择符要么会被修改要么就不能用。
176176

177177
Vue让你可以完全访问[ 单文件组件 ](single-file-components.html)
178178

@@ -210,7 +210,7 @@ Vue和React都提供了强大的路由来应对对于大型应用。React社区
210210

211211
React学习曲线陡峭,在你开始学 React 前,你需要知道 JSX 和 ES2015,因为许多示例用的是这些语法。你需要学习构建系统,虽然你可以在技术上可以用 Babel Standalone 来编译代码,但是不推荐用于生产。
212212

213-
Vue样扩大后就像React,缩小后就像 Jquery。你需要做的就是把如下标签放到页面就行:
213+
Vue扩大后就像React,缩小后就像 Jquery。你需要做的就是把如下标签放到页面就行:
214214

215215

216216
`<script src="https://unpkg.com/vue/dist/vue.js"></script>`
@@ -229,11 +229,11 @@ ReactNative能使你用相同的组件模型编写有本地渲染能力的APP(
229229

230230
### MobX
231231

232-
Mobx 在 React 社区很流行,实际上在Vue也采用了几乎相同的反应系统。在有限程度上,React + Mobx 也可以被认为是更繁琐的 Vue,所以如果你习惯组合使用它们,那么选择 Vue 会更合理。
232+
Mobx 在 React 社区很流行,实际上Vue也采用了几乎相同的反应系统。在有限程度上,React + Mobx 也可以被认为是更繁琐的 Vue,所以如果你习惯组合使用它们,那么选择 Vue 会更合理。
233233

234234
## Angular 1
235235

236-
Vue的一些语法和Angular的很相似(例如 `v-if` vs `ng-if`)。因为Angular是Vue早期开发的灵感来源。然而,Augular中存在许多问题,在Vue中已经得到解决。
236+
Vue的一些语法和Angular的很相似(例如 `v-if` vs `ng-if`)。因为Angular是Vue早期开发的灵感来源。然而,Augular中存在的许多问题,在Vue中已经得到解决。
237237

238238
### 复杂性
239239

@@ -246,7 +246,7 @@ Vue.js 是一个更加灵活开放的解决方案。它允许你以希望的方
246246

247247
### 数据绑定
248248

249-
Angular 1 使用双向绑定,Vue在不同组件间强制适用单向数据流。这使应用中的数据流清晰易懂。
249+
Angular 1 使用双向绑定,Vue在不同组件间强制使用单向数据流。这使应用中的数据流清晰易懂。
250250

251251
### 指令与组件
252252

@@ -299,7 +299,7 @@ Ember 是一个全能框架。它提供大量的约定,一旦你熟悉了它
299299

300300
* Vue 的模板语法可以用全功能的 JavaScript 表达式,而 Handlebars 的语法和帮助函数语法相比之下非常受限。
301301

302-
* 在性能上,Vue 甩开 Ember 几条街,即使是 Ember2.0 的最新Glimmer引擎。Vue自动批量更新,Ember 当性能关键处需要手动管理
302+
* 在性能上,Vue 甩开 Ember 几条街,即使是 Ember2.0 的最新Glimmer引擎。Vue自动批量更新,Ember 在性能关键处需要手动管理
303303

304304
## Knockout
305305

@@ -315,7 +315,7 @@ Polymer 是另一个由谷歌赞助的项目,事实上也是Vue的一个灵感
315315

316316
在 Polymer 1.0版本中,为了弥补性能,团队非常有限的使用数据绑定系统。例如,在Ploymer中支持的唯一表达式只有布尔值否定和单一的方法的调用,它的computed方法的实现也不是很灵活。
317317

318-
Polymer 自定义的元素是用HTML文件来创建的,这回限制你的普通的JavaScript/CSS(和被现代浏览器普遍支持的语言特性)。相比之下,Vue的单文件允许你非常容易的使用ES2015和你想用的Css的预编译处理器
318+
Polymer 自定义的元素是用HTML文件来创建的,这会限制你的普通的JavaScript/CSS(和被现代浏览器普遍支持的语言特性)。相比之下,Vue的单文件允许你非常容易的使用ES2015和你想用的CSS的预编译处理器
319319

320320
当部署到生产环境的时候,Polymer建议使用HTML Imports加载所有资源。而这要求服务器和客户端都支持Http 2.0协议,且浏览器实现了标准。这是否可行就取决于你的目标用户和部署环境了。如果状况不佳,你必须用Vulcanizer工具来来打包Polymer元素。在这方面,Vue 可以结合异步组件的特性和Webpack的代码分割特性来实现懒加载(lazy-loaded)。这同时确保了对旧浏览器的兼容且又能更快加载。
321321

src/guide/components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ Vue.component('example', {
428428
- 使用 `$on(eventName)` 监听事件
429429
- 使用 `$emit(eventName)` 触发事件
430430

431-
另外,父组件可以在模版中监听子组件直接使用 `v-on` 发出的事件
431+
另外,父组件可以在使用子组件的地方直接用 `v-on` 来监听子组件触发的事件
432432

433433
下面是一个例子:
434434

src/guide/computed.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ var watchExampleVM = new Vue({
226226
methods: {
227227
  // _.debounce 是一个通过 lodash 限制操作频率的函数。
228228
  // 在这个例子中,我们希望限制访问yesno.wtf/api的频率
229-
  // 一直等待直到用户发出ajax请求之前
229+
  // ajax请求直到用户输入完毕才会发出
230230
  // 学习更多关于 _.debounce function (and its cousin
231231
// _.throttle), 参考: https://lodash.com/docs#debounce
232232
getAnswer: _.debounce(

src/guide/custom-directive.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ order: 16
66

77
## 简介
88

9-
除了默认设置的核心指令(`v-model``v-show`),Vue也允许注册自定义指令。注意,在vue2.0里面,代码复用的主要形式和抽象是组件——然而,有的情况下,你仍然需要对纯DOM元素进行底层操作,这时候就会用到自定义指令。下面这个例子聚焦一个input元素,像这样:
9+
除了默认设置的核心指令( `v-model``v-show` ),Vue 也允许注册自定义指令。注意,在 Vue2.0 里面,代码复用的主要形式和抽象是组件——然而,有的情况下,你仍然需要对纯 DOM 元素进行底层操作,这时候就会用到自定义指令。下面这个例子将聚焦一个 input 元素,像这样:
1010

1111
{% raw %}
1212
<div id="simplest-directive-example" class="demo">
@@ -24,20 +24,20 @@ new Vue({
2424
</script>
2525
{% endraw %}
2626

27-
页面加载时,元素将获得焦点。事实上,你访问后还没点击任何内容,input就获得了焦点。现在让我们完善这个指令:
27+
当页面加载时,元素将获得焦点。事实上,你访问后还没点击任何内容,input 就获得了焦点。现在让我们完善这个指令:
2828

2929
``` js
3030
// 注册一个全局自定义指令 v-focus
3131
Vue.directive('focus', {
32-
// 当绑定元素插入到DOM中
32+
// 当绑定元素插入到 DOM 中
3333
inserted: function (el) {
3434
// 聚焦元素
3535
el.focus()
3636
}
3737
})
3838
```
3939

40-
也可以注册局部指令,组件中接受一个 `directives`的选项:
40+
也可以注册局部指令,组件中接受一个 `directives` 的选项:
4141

4242
``` js
4343
directives: {
@@ -48,7 +48,7 @@ directives: {
4848
}
4949
```
5050

51-
然后你可以在模板中任何元素上使用新的`v-focus`属性:
51+
然后你可以在模板中任何元素上使用新的 `v-focus` 属性:
5252

5353
``` html
5454
<input v-focus>
@@ -61,31 +61,31 @@ directives: {
6161
- `bind`: 只调用一次, 指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。
6262

6363
- `inserted`: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。
64-
64+
6565
- `update`: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。
6666

6767
- `componentUpdated`: 被绑定元素所在模板完成一次更新周期时调用。
6868

6969
- `unbind`: 只调用一次, 指令与元素解绑时调用。
7070

71-
接下来我们来看一下钩子函数的参数 (包括 `el` `binding` `vnode` `oldVnode`) 。
71+
接下来我们来看一下钩子函数的参数 (包括 `el``binding``vnode``oldVnode`) 。
7272

7373
## 钩子函数参数
7474

7575
钩子函数被赋予了以下参数:
7676

77-
- **el**: 指令所绑定的元素,可以用来直接操作 dom
77+
- **el**: 指令所绑定的元素,可以用来直接操作 DOM
7878
- **binding**: 一个对象,包含以下属性:
7979
- **name**: 指令名,不包括 `v-` 前缀。
8080
- **value**: 指令的绑定值, 例如: `v-my-directive="1 + 1"`, value 的值是 `2`
8181
- **oldValue**: 指令绑定的前一个值, 仅在 `update``componentUpdated` 钩子中可用。无论值是否改变都可用。
8282
- **expression**: 绑定值的字符串形式。 例如 `v-my-directive="1 + 1"` , expression 的值是 `"1 + 1"`
8383
- **arg**: 传给指令的参数。例如 `v-my-directive:foo`, arg 的值是 `"foo"`
84-
- **modifiers**: 一个包含编辑器的对象。 例如: `v-my-directive.foo.bar`, 编辑器对象 modifiers的值是 `{ foo: true, bar: true }`
85-
- **vnode**: Vue 编译生成的虚拟节点, 参考 [VNode API](/api/#VNode-Interface) 详情
84+
- **modifiers**: 一个包含修饰符的对象。 例如: `v-my-directive.foo.bar`, 修饰符对象 modifiers 的值是 `{ foo: true, bar: true }`
85+
- **vnode**: Vue 编译生成的虚拟节点, 查阅 [VNode API](/api/#VNode-Interface) 了解更多详情
8686
- **oldVnode**: 上一个虚拟节点, 仅在 `update``componentUpdated` 钩子中可用。
8787

88-
<p class="tip">除了 `el` 之外, 其它参数都应该是只读的,尽量不要修改他们。如果需要在钩子之间共享数据,建议通过元素的 [dataset] 来进行。(https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset).</p>
88+
<p class="tip">除了 `el` 之外, 其它参数都应该是只读的,尽量不要修改他们。如果需要在钩子之间共享数据,建议通过元素的 [dataset](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset) 来进行。</p>
8989

9090
一个使用了这些参数的自定义钩子样例:
9191

@@ -141,16 +141,16 @@ new Vue({
141141

142142
## 函数简写
143143

144-
大多数情况下,只需要在 `bind``update` 钩子中做重复动作,而不关心其它钩子函数。可以这样写:
144+
大多数情况下,我们可能想在 `bind``update` 钩子上做重复动作,并且不想关心其它的钩子函数。可以这样写:
145145

146146
``` js
147147
Vue.directive('color-swatch', function (el, binding) {
148148
el.style.backgroundColor = binding.value
149149
})
150150
```
151-
## 对象常量
151+
## 对象字面量
152152

153-
如果自定义指令需要复杂的值,也可以传递 javascript 对象。要知道,指令函数能够接受所有类型的 javascript 常量
153+
如果指令需要多个值,可以传入一个 JavaScript 对象字面量。记住,指令函数能够接受所有合法类型的 Javascript 表达式
154154

155155
``` html
156156
<div v-demo="{ color: 'white', text: 'hello!' }"></div>
@@ -167,4 +167,4 @@ Vue.directive('demo', function (el, binding) {
167167

168168
> 原文:http://vuejs.org/guide/custom-directive.html
169169
170-
***
170+
***

src/guide/forms.md

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ vm.selected.number // -> 123
333333

334334
### `.lazy`
335335

336-
在默认情况下, `v-model``input` 事件中同步输入框值与数据,但你可以添加一个修饰符 `lazy` ,从而转变为在 `change` 事件中同步:
336+
在默认情况下, `v-model``input` 事件中同步输入框的值与数据,但你可以添加一个修饰符 `lazy` ,从而转变为在 `change` 事件中同步:
337337

338338
``` html
339339
<!-- 在 "change" 而不是 "input" 事件中更新 -->
@@ -351,15 +351,6 @@ vm.selected.number // -> 123
351351

352352
这通常很有用,因为在 `type="number"` 时 HTML 中输入的值也总是会返回字符串类型。
353353

354-
### `.trim`
355-
356-
如果想让用户的输入内容自动去掉起始和结尾的空格。可以添加 `trim` 修饰符给 `v-model` 来处理输入值:
357-
358-
``` html
359-
<input v-model.trim="msg">
360-
```
361-
362-
363354

364355
### `.trim`
365356

src/guide/index.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ order: 2
66

77
## Vue.js 是什么
88

9-
Vue.js(读音 /vjuː/, 类似于 **view**) 是一套构建用户界面的 **先进框架**。与其他单层框架( monolithic frameworks)不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用[单文件组件](single-file-components.html)[Vue生态系统支持的库](//github.com/vuejs/awesome-vue#libraries--plugins)开发的复杂单页应用。
9+
Vue.js(读音 /vjuː/, 类似于 **view**) 是一套构建用户界面的 **先进框架**。与其他单层框架( monolithic frameworks)不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用[单文件组件](single-file-components.html)[Vue生态系统支持的库](//github.com/vuejs/awesome-vue#libraries--plugins)开发的复杂单页应用。
1010

1111
Vue.js 的目标是通过尽可能简单的 API 实现**响应的数据绑定****组合的视图组件**
1212

@@ -26,7 +26,7 @@ Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将
2626
</div>
2727
```
2828
``` js
29-
new Vue({
29+
var app = new Vue({
3030
el: '#app',
3131
data: {
3232
message: 'Hello Vue.js!'
@@ -283,7 +283,8 @@ Vue.component('todo', {
283283
<todo v-for="todo in todos" v-bind:todo="todo"></todo>
284284
</ol>
285285
</div>
286-
```
286+
```
287+
287288
``` js
288289
var app7 = new Vue({
289290
el: '#app-7',
@@ -316,7 +317,7 @@ var app7 = new Vue({
316317
</script>
317318
{% endraw %}
318319

319-
这只是一个人为的例子,但是我们已经将我们的应用分割成了两小的单元,子元素通过 `props` 接口实现了与父亲元素很好的解耦。我们现在可以在不影响到父应用的基础上,进一步为我们的 `todo` 组件改进更多复杂的模板和逻辑。
320+
这只是一个人为的例子,但是我们已经将我们的应用分割成了两个更小的单元,子元素通过 `props` 接口实现了与父亲元素很好的解耦。我们现在可以在不影响到父应用的基础上,进一步为我们的 `todo` 组件改进更多复杂的模板和逻辑。
320321

321322
在一个大型应用中,为了使得开发过程可控,有必要将应用整体分割成一个个的组件。在[后面的教程](/guide/components.html)中我们将详述组件,不过这里有一个(假想)的例子,看看使用了组件的应用模板是什么样的:
322323

src/guide/list.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ example1.items = example1.items.filter(function (item) {
373373
})
374374
```
375375

376-
你可你能认为这将导致 Vue 丢掉现有 DOM 和重新渲染整个列表。幸运的是,事实并非如此。 Vue 实现了一些智能化去最大化的重用 DOM 元素,所以用另外含有重叠对象的数组替换数组是非常高效的操作。
376+
你可能认为这将导致 Vue 丢掉现有 DOM 并重新渲染整个列表。幸运的是,事实并非如此。 Vue 实现了一些智能化去最大化的重用 DOM 元素,所以用另外含有重叠对象的数组替换数组是非常高效的操作。
377377

378378
### 注意事项
379379

src/guide/migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1384,7 +1384,7 @@ vm.$el.remove()
13841384
{% raw %}
13851385
<div class="upgrade-path">
13861386
<h4>升级方式</h4>
1387-
<p>运行 <a href="https://github.com/vuejs/vue-migration-helper">migration helper</a>找到<code>vm.$remove</code>.。如有遗漏,请参考<strong>控制台错误信息</strong>。</p>
1387+
<p>运行 <a href="https://github.com/vuejs/vue-migration-helper">migration helper</a>找到<code>vm.$remove</code>。如有遗漏,请参考<strong>控制台错误信息</strong>。</p>
13881388
</div>
13891389
{% endraw %}
13901390

0 commit comments

Comments
 (0)