一 前提
引入vue.js:
<script src="https://unpkg.com/vue/dist/vue.js"></script>
二 数据渲染方式
- {{}}
- v-text
- v-bind
- v-model
1 {{}}
简洁的模板语法,即“Mustache” 语法(双大括号)来声明式的将数据渲染进 DOM:
<div id="app">{{msg}}</div>
var app = new Vue({
el:'#app',
data: {
msg:'resume vue'
}
})
2 v-text
v-text也是可以做数据渲染优于{{}},因为在网络较慢时不会像{{}}那样原样显示在页面上。应用如下:
<div id="app6">
<p v-text="message"></p>
</div>
var app6 = new Vue({
el : "#app6",
data : {
message : 'v-text demo'
}
})
3 v-bind
v-bind称为指令,主要用于绑定DOM元素属性,指令带有前缀 v-,以表示它们是 Vue 提供的特殊属性,可以使用其简写方式:。以下是v-bind的应用:
<div id="app2">
<span v-bind:title="msg">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
<span :title="msg">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
</div> var app2 = new Vue({ el:'#app2', data: { msg:'页面加载于 ' + new Date() } })
4 v-model
v-model指令,能轻松实现表单输入和应用状态之间的双向绑定:
<div id="app7">
<p>{{msg}}</p>
<input v-model="msg">
</div>
var app7 = new Vue({
el : "#app7",
data : {
msg : "hello qcxiao"
}
})
三 条件与循环
v-if、v-for分别用于条件与循环。
1 v-if
<div id="app3">
<p v-if="seen">你可以看到我了</p>
</div>
var app3 = new Vue({
el : "#app3",
data : {
seen : false
}
})
此时当我们在浏览器console里输入app-3.seen=true,就可以发现在页面上的“你现在可以看到我了”。
2 v-for
<div id="app4">
<ol>
<li v-for="todo in todos">
{{todo.text}}
</li>
</ol>
</div>
var app4 = new Vue({
el : "#app4",
data : {
todos:[
{text : 'javascript'},
{text : 'vue'},
{text : 'angular'},
{text : 'react'}
]
}
})
在控制台里,输入 app4.todos.push({ text: 'java' }),添加了一个java新项。
四 数据交互
通过v-on指令绑定一个事件监听器可以满足用户与程序的交互需求。
<div id="app5">
<p>{{message}}</p>
<button v-on:click="reverseMessage">倒序</button>
</div>
var app5 = new Vue({
el : "#app5",
data : {
message : 'hello qcxiao'
},
methods : {
reverseMessage : function(){
this.message = this.message.split('').reverse().join('');
}
}
})
注意在 reverseMessage 方法中,更新了应用的状态,但没有触碰 DOM——所有的 DOM 操作都由 Vue 来处理,你编写的代码只需要关注底层逻辑。