1. 简介
官网这样描述
Vue.js 是一套构建用户界面的 渐进式框架。
与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用。
2. Hello World
[1] DOM
<div id="app">
{{ message }}
</div>
[2] vue.js引用
<script src="https://unpkg.com/vue/dist/vue.js"></script>
[3] javascript
var app = new Vue({
el: '#app',
data: {
message: 'Hello World'
}
})
所有的元素都是响应式的,可以在控制台中,修改app.message的值,看到页面呈现的也同步被修改。
3. 指令v-
在Vue.js中前缀 为v-的属性称为指令,它是 Vue.js 提供的特殊属性,会在渲染过的 DOM 上应用特殊的响应式行为。
(1) v-bind
<div id="app-2">
<span v-bind:title="message">
鼠标停在此处查看title
</span>
</div>
var app2 = new Vue({
el: '#app-2',
data: {
message: 'You loaded this page on ' + new Date()
}
})
将message中的文字绑定到title属性中,效果如下。
(2) v-if
<div id="app-3">
<p v-if="show">Show text</p>
</div>
var app3 = new Vue({
el: '#app-3',
data: {
show: true
}
})
在控制台中设置app3.show=false,显示的文字随即消失。
(3) v-for
<div id="app-4">
<ol>
<li v-for="item in list">
{{ item.text }}
</li>
</ol>
</div>
var app4 = new Vue({
el: '#app-4',
data: {
list: [
{ text: '安装' },
{ text: '介绍' },
{ text: '实例' }
]
}
})
显示列表,当在控制台输入app4.list.push({'text':'进阶'})
,新的内容会出现在列表展示中。
(4) v-on
v-on 指令用来绑定一个监听事件,用于调用我们 Vue 实例中定义的方法。
<div id="app-5">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">Reverse Message</button>
</div>
var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello World'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
})
(5) v-model
官网描述
v-model 指令,它使得在表单输入和应用状态中做双向数据绑定变得非常轻巧
<div id="app-6">
<p>{{ message }}</p>
<input v-model="message">
</div>
var app6 = new Vue({
el: '#app-6',
data: {
message: 'Hello Vue!'
}
})
在input框中输入的内容会被同步到段落中显示。