8
8
9
9
Vue.js(读音 /vjuː/, 类似于 ** view** )是一个构建用户界面的渐进式框架。与其他单层框架( monolithic frameworks)不同的是,Vue 被设计成从底层向上可以被增量式的采用。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用[ 单文件组件] ( single-file-components.html ) 和[ Vue生态系统支持的库] ( //github.com/vuejs/awesome-vue#libraries--plugins ) 开发的复杂单页应用。
10
10
11
-
12
11
Vue.js 的目标是通过尽可能简单的 API 实现** 响应的数据绑定** 和** 组合的视图组件** 。
13
12
14
13
如果你是有经验的前端开发者,想知道 Vue.js 与其它库/框架的区别,查看[ 对比其它框架] ( comparison.html ) 。
@@ -48,7 +47,7 @@ var app = new Vue({
48
47
</script >
49
48
{% endraw %}
50
49
51
- 我们已经生成了我们的第一个 Vue 应用!看起来这跟单单渲染一个字符串模板非常类似,但是 Vue.js 在背后做了大量工作。现在数据和DOM已经被绑定在一起 ,所有的元素都是** 响应式的(reactive) ** 。我们如何知道?打开你的浏览器的控制台,并修改 ` app.message ` ,你将看到上例相应地更新。
50
+ 我们已经生成了我们的第一个 Vue 应用!看起来这跟单单渲染一个字符串模板非常类似,但是 Vue.js 在背后做了大量工作。现在数据和 DOM 已经被绑定在一起 ,所有的元素都是** 响应式的** 。我们如何知道?打开你的浏览器的控制台,并修改 ` app.message ` ,你将看到上例相应地更新。
52
51
53
52
除了绑定插入的文本内容,我们还可以采用这样的方式绑定 DOM 元素属性:
54
53
@@ -83,7 +82,7 @@ var app2 = new Vue({
83
82
84
83
这里我们遇到新东西。你看到的 ` v-bind ` 特性被称为** 指令** 。指令带有前缀 ` v- ` ,以指示它们是 Vue.js 提供的特殊特性。并且如你所想象的,它们会对绑定的目标元素添加响应式的特殊行为。这个指令的简单含义是说:将该元素的 id 属性绑定到 Vue 实例的 id 属性上。
85
84
86
- 用浏览器的开发者工具去监测以上元素 - 你会发现 这个元素的 id 为 ` inspect-me ` 。是的,如果你在控制台里更改` app2.id ` ,那么该元素的 id 也会随之更新。
85
+ 用浏览器的开发者工具去监测以上元素 - 你会发现 这个元素的 id 为 ` inspect-me ` 。是的,如果你在控制台里更改 ` app2.id ` ,那么该元素的 id 也会随之更新。
87
86
88
87
## 条件与循环
89
88
@@ -102,7 +101,6 @@ var app3 = new Vue({
102
101
}
103
102
})
104
103
```
105
-
106
104
{% raw %}
107
105
<div id =" app-3 " class =" demo " >
108
106
<span v-if =" seen " >Now you see me</span >
@@ -144,7 +142,6 @@ var app4 = new Vue({
144
142
}
145
143
})
146
144
```
147
-
148
145
{% raw %}
149
146
<div id =" app-4 " class =" demo " >
150
147
<ol >
@@ -167,7 +164,7 @@ var app4 = new Vue({
167
164
</script >
168
165
{% endraw %}
169
166
170
- 在控制台里,输入` app4.todos.push({ text: 'New item' }) ` 。你会发现列表中多了一栏新内容。
167
+ 在控制台里,输入 ` app4.todos.push({ text: 'New item' }) ` 。你会发现列表中多了一栏新内容。
171
168
172
169
## 处理用户输入
173
170
@@ -192,7 +189,6 @@ var app5 = new Vue({
192
189
}
193
190
})
194
191
```
195
-
196
192
{% raw %}
197
193
<div id =" app-5 " class =" demo " >
198
194
<p >{{ message }}</p >
@@ -231,7 +227,6 @@ var app6 = new Vue({
231
227
}
232
228
})
233
229
```
234
-
235
230
{% raw %}
236
231
<div id =" app-6 " class =" demo " >
237
232
<p >{{ message }}</p >
@@ -269,7 +264,7 @@ Vue.component('todo', {
269
264
</ul >
270
265
```
271
266
272
- 但是这样会为每个 todo 渲染同样的文本,这看起来并不是很6 。我们应该将数据从父作用域传到子组件。让我们来修改一下组件的定义,使得它能够接受一个 [ ` prop ` ] ( /guide/components.html#Props ) 字段:
267
+ 但是这样会为每个 todo 渲染同样的文本,这看起来并不是很酷 。我们应该将数据从父作用域传到子组件。让我们来修改一下组件的定义,使得它能够接受一个 [ ` prop ` ] ( /guide/components.html#Props ) 字段:
273
268
274
269
``` js
275
270
Vue .component (' todo' , {
@@ -295,7 +290,6 @@ var app7 = new Vue({
295
290
}
296
291
})
297
292
```
298
-
299
293
{% raw %}
300
294
<div id =" app-7 " class =" demo " >
301
295
<ol >
0 commit comments