title: vue基础复习-课时01
date: 2018-04-30
目录
安装
<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- 开发环境版本,包含了用帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
渲染-声明式
<div id="app">
{{ message }}
</div>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
文本插值
<div id="app">
{{ message }}
</div>
元素属性
<span v-bind:title="message">
鼠标悬停几秒钟查看此处动态绑定的提示信息!
</span>
条件指令
<p v-if="seen">现在你看到我了</p>
循环指令
<ol>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ol>
data: {
todos: [
{ text: '学习 JavaScript' },
{ text: '学习 Vue' },
{ text: '整个牛项目' }
]
}
事件监听
<button v-on:click="reverseMessage">逆转消息</button>
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
双向绑定
<input v-model="message">
组件应用
定义
Vue.component('todo-item', {
// todo-item 组件现在接受一个
// "prop",类似于一个自定义特性(todo-item拥有的属性)。
// 这个 prop 名为 todo。
props: ['todo'],
template: '<li>{{ todo.text }}</li>'
});
使用
<ol>
<todo-item
v-for="item in groceryList"
v-bind:todo="item"
v-bind:key="item.id">
</todo-item>
</ol>
渲染
var app7 = new Vue({
el: '#app-7',
data: {
groceryList: [
{ id: 0, text: '蔬菜' },
{ id: 1, text: '奶酪' },
{ id: 2, text: '随便其它什么人吃的东西' }
]
}
})