学习官网:https://cn.vuejs.org/index.html
GitHub:https://github.com/vuejs/vue
star:31.6k
v-if
v-for
v-model
’
v-if 使用条件与循环来控制切换一个元素是否显示
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app"> <p v-if="seen">true就是可以看见</p> </div> </body> <script> var app = new Vue({ el: '#app', data: { seen: true } }) </script> </html>
seen的值为true的时候 显示页面的文字
seen的值为false的时候 隐藏页面的文字
v-for 指令 绑定数组的数据来渲染一个项目列表
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app-4"> <ol> <li v-for="todo in todos"> {{ todo.text }} </li> </ol> </div> </body> <script> var app4 = new Vue({ el: '#app-4', data: { todos: [ { text: '学习 JavaScript' }, { text: '学习 Vue' }, { text: '整个牛项目' } ] } }) </script> </html>
v-model 指令,表单输入和应用状态之间的双向绑定。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app-6"> <p>{{ message }}</p> <input v-model="message"> </div> </body> <script> var app6 = new Vue({ el: '#app-6', data: { message: 'Hello Vue!' } }) </script> </html>
v-bind 主要用于属性绑定
v-bind 绑定属性
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app-2"> <span v-bind:title="message"> 鼠标悬停几秒钟查看此处动态绑定的提示信息! </span> </div> </body> <script> var app2 = new Vue({ el: '#app-2', data: { message: '页面加载于 ' + new Date().toLocaleString() } }) </script> </html>
v-bind
缩写
<!-- 完整语法 --> <a v-bind:href="url">...</a> <!-- 缩写 --> <a :href="url">...</a> <!-- 动态参数的缩写 (2.6.0+) --> <a :[key]="url"> ... </a>
v-on :用于绑定事件的
v-on 指令添加一个事件监听器
v-on:后面的值是一个方法,可以写成myclick(),没有参数可以写成myclick。
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app"> <button v-on:click="myclick">click me</button> </div> </body> <script> var app2 = new Vue({ el: '#app', data: { }, methods:{ myclick:function(){ alert(1); } } }) </script> </html>
<!-- 完整语法 --> <a v-on:click="doSomething">...</a> <!-- 缩写 --> <a @click="doSomething">...</a> <!-- 动态参数的缩写 (2.6.0+) --> <a @[event]="doSomething"> ... </a>
v-on 绑定多个事件
v-on也可以绑定多个事件
多个事件可以单独多个v-on绑定
v-on也可以绑定多个事件
多个事件可以单独多个v-on绑定
<div class="app"> <button v-on:mouseenter='onenter' v-on:mouseleave='leave'>click me</button> </div>
也可以使用一个v-on,里头用对象的形式书写,对象的键名就是事件名,对象的键值就是对应事件要执行的方法。多个事件之间通过,分开
<div class="app"> <button v-on="{mouseenter:onenter,mouseleave:leave}">click me</button> </div>
当然也可以混合使用
<div class="app"> <button v-on="{mouseenter:onenter,mouseleave:leave}" v-on:click="myclick">click me</button> </div>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> </head> <body> <div id="app"> <button v-on:mouseenter='onenter' v-on:mouseleave='leave'>click me</button> <button v-on="{mouseenter:onenter,mouseleave:leave}">click me</button> <button v-on="{mouseenter:onenter,mouseleave:leave}" v-on:click="myclick">click me</button> </div> </body> <script> var app2 = new Vue({ el: '#app', data: { }, methods:{ myclick:function(){ alert("clicked"); }, onenter:function(){ alert("mouseented"); }, leave:function(){ alert("mouseleaved"); } } }) </script> </html>