本文共 4819 字,大约阅读时间需要 16 分钟。
v-if指令可以完全根据表达式的值在DOM中生成或移除一个元素。
如果v-if表达式赋值为false,那么对应的元素就会从DOM中移除;
否则,对应元素的一个克隆将被重新插入DOM中
<template> <div id="app"> <h1>Title</h1> <p>paragraph 1</p> <p>paragraph 2</p> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { greeting: true } })</script>
v-show指令是根据表达式的值来显示或者隐藏HTML元素。当v-show赋值为false时,元素被隐藏。查看DOM时,会发现元素上多了一个内联样式style=“display:none”。
<template> <div id="app"> <h1>Title</h1> <p v-show="ok">我是对的</p> <p v-show="no">我是错的</p> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { ok: true, no: false } })</script>
v-model指令用来在input、select、text、checkbox、radio等表单控件元素上创建双向数据绑定的。根据控件类型v-model自动选取正确的方法更新元素。
<div id="example"> <form> 姓名: <input type="text" v-model="data.name" placeholder="姓名"/> <br /> 性别: <input type="radio" id="one" value="One" v-model="data.sex"/> <label for="man">男</label> <input type="radio" id="two" value="Two" v-model="data.sex"/> <label for="male">女</label> <br /> <input type="checkbox" id="jack" value="book" v-model="data.interest"/> <label for="jack">阅读</label> <input type="checkbox" id="john" value="swim" v-model="data.interest"/> <label for="john">游泳</label> <input type="checkbox" id="move" value="game" v-model="data.interest"/> <label for="move">游戏</label> <input type="checkbox" id="mike" value="song" v-model="data.interest"/> <label for="mike">唱歌</label> <br /> 身份: <select v-model="data.identity"> <option value="teacher" selected>教师</option> <option value="doctor">医生</option> <option value="lawyer">律师</option> </select> </form></div><script type="text/javascript"> new Vue({ el: '#example', data: { data:{ name:'', sex:'', interest:[], identity:'' } } })</script>
<template> <div id="app"> <h1>Title</h1> <ul> <li v-for="item in items" class="item-{ {$index}}"> { { $index}} - { { parentMessess}} - { { item.msg}} </li> </ul> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { : '前端开发基础技术', items:{ { msg: 'html'}, { msg: 'css'}, { msg: ‘javascript'} } } })</script>
v-text 指令可以更新元素的textContent.
<span v-text="msg"></span> <br/><span>{ { msg}}</span>
v-html指令更新元素的innerHTML 能解析html标签
<template> <div id="app"> <h1>Title</h1> <p v-html="msg"></p> <p>{ { msg}}</p> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { msg:'<p>效果一样</p>' } })</script>
v-bind指令用于响应更新HTML特性,将一个或者多个attribute,或者一个组件prop动态绑定到表达式简写为:。
<template> <div id="app"> <h1>Title</h1> <div :class="[classA,{ classB:isB,classC:isC}]”></div> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { classA: 'A', isB: false, isC: true } })</script>
v-on指令用于绑定事件监听器。事件类型由参数指定。
如果访问原始DOM事件,可以使用$event传入方法 ,简写为@
<template> <div id="app"> <h1>Title</h1> <p> { { }} </p> <button v-on:click="doThis">doThis</button> </div></template> <script type="text/javascript"> var vm = new Vue({ el: "#app", data: { msg: 'hello world', }, methods: { doThis: function(){ this.msg = 'hello world change !!!' } } })</script>
解决差值表达式闪烁的问题
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="https://unpkg.com/vue/dist/vue.js"></script></head><style> [v-cloak]{ display: none; }</style></head> <body> <div id="app" v-cloak>{ { msg}}</div> <script> new Vue({ el: '#app', data: { msg: '欢迎Vue!' } }) </script></body> </html>
跨过当前的标签不解析
<div id="app"> <span v-pre>{ { msg}} 这句不会编译</span> </div> <script> var app =new Vue({ el:'#app', msg:'this is a message' }); </script>
转载地址:http://rque.baihongyu.com/