【Vue】Vue学习(一)-Vue指令
1.v-text
v-text主要用来更新文本,等同于JS的text属性
<span v-text="msg"></span>
这两者等价
<span>{{msg}}<span>
2.v-html
双大括号的方式会将数据解释为纯文本,而非HTML。为了输出真正的HTML,可以用v-html指令。它等同于JS的innerHtml属性。
<div v-html="rawHtml"></div>
这个div的内容将会替换成属性值rawHtml,直接作为HTML进行渲染。
3.v-if
v-if可以实现条件渲染,Vue会根据表达式的值的真假条件来渲染元素
<a v-if="ok">yes</a>
如果属性值ok为true,则显示。否则,不会渲染
这个元素
4.v-else
v-else是搭配v-if使用的,它必须紧跟在v-if或者v-else-if后面,否则不起作用。
<a v-if="ok">yes</a>
<a v-else>No</a>
5.v-else-if
v-else-if充当v-if的else-if块,可以链式的使用多次。可以更加方便的实现switch语句
<div v-if="type==='A'"> A </div> <div v-else-if="type==='B'"> B </div> <div v-else-if="type==='C'"> C </div> <div v-else> Not A,B,C </div>
6.v-show
<h1 v-show="ok">hello world</h1>
v-show有更高的初始渲染开销。
因此,如果要非常频繁的切换,则使用v-show较好;如果在运行时条件不太可能改变,则v-if较好
有下面两种遍历形式
<div v-for="(item,index) in items"></div> //使用in,index是一个可选参数,表示当前项的索引 <div v-for="item of items"></div> //使用of
下面是一个例子,并且在v-for中,拥有对父作用域属性的完全访问权限。
<ul id="app"> <li v-for="item in items"> {{parent}}-{{item.text}} </li> </ul> <script type="text/javascript"> var example = new Vue({ el:'#app', data:{ parent:'父作用域' items:[ {text:'文本1'}, {text:'文本2'} ] } }) </script>
注意:
当v-for和v-if同处于一个节点时,v-for的优先级比v-if更高。这意味着v-if将运行在每个v-for循环中
8.v-bind
v-bind用来动态的绑定一个或者多个特性。没有参数时,可以绑定到一个包含键值对的对象。常用于动态绑定class和style。以及href等。
简写为一个冒号【 :】
<1>对象语法: //进行类切换的例子 <div id="app"> <!--当data里面定义的isActive等于true时,is-active这个类才会被添加起作用--> <!--当data里面定义的hasError等于true时,text-danger这个类才会被添加起作用--> <div :class="{'is-active':isActive, 'text-danger':hasError}"></div> </div> <script> var app = new Vue({ el: '#app', data: { isActive: true, hasError: false } }) </script>
<!--因为hasError: false,所以text-danger不被渲染-->
<div class = "is-active"></div>
<2>数组语法 <div id="app"> <!--数组语法:errorClass在data对应的类一定会添加--> <!--is-active是对象语法,根据activeClass对应的取值决定是否添加--> <p :class="[{'is-active':activeClass},errorClass]">12345</p> </div> <script> var app = new Vue({ el: '#app', data: { activeClass: false, errorClass: 'text-danger' } }) </script>
<3>直接绑定数据对象 <div id="app"> <!--在vue实例的data中定义了classObject对象,这个对象里面是所有类名及其真值--> <!--当里面的类的值是true时会被渲染--> <div :class="classObject">12345</div> </div> <script> var app = new Vue({ el: '#app', data: { classObject:{ 'is-active': false, 'text-danger':true } } }) </script>
渲染结果: <!--因为'is-active': false,所以is-active不被渲染--> <div class = "text-danger"></div>
9. v-model
v-model会忽略所有表单元素的value、checked、selected特性的初始值。因为它选择Vue实例数据做为具体的值。
<div id="app"> <input v-model="somebody"> <p>hello {{somebody}}</p> </div> <script> var app = new Vue({ el: '#app', data: { somebody:'小明' } }) </script>
这个例子中直接在浏览器input中输入别的名字,下面的p的内容会直接跟着变。这就是双向数据绑定。
10.v-on
v-on主要用来监听dom事件,以便执行一些代码块。表达式可以是一个方法名。简写为:【 @ 】
<div id="app"> <button @click="consoleLog"></button> </div> <script> var app = new Vue({ el: '#app', methods:{ consoleLog:function (event) { console.log(1) } } }) </script>
事件修饰符
.stop
阻止事件继续传播.prevent
事件不再重载页面.capture
使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理.self
只当在 event.target 是当前元素自身时触发处理函数.once
事件将只会触发一次.passive
告诉浏览器你不想阻止事件的默认行为
<!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> <!-- 提交事件不再重载页面 --> <form v-on:submit.prevent="onSubmit"></form> <!-- 修饰符可以串联 --> <a v-on:click.stop.prevent="doThat"></a> <!-- 只有修饰符 --> <form v-on:submit.prevent></form> <!-- 添加事件监听器时使用事件捕获模式 --> <!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 --> <div v-on:click.capture="doThis">...</div> <!-- 只当在 event.target 是当前元素自身时触发处理函数 --> <!-- 即事件不是从内部元素触发的 --> <div v-on:click.self="doThat">...</div> <!-- 点击事件将只会触发一次 --> <a v-on:click.once="doThis"></a> <!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 --> <!-- 而不会等待 `onScroll` 完成 --> <!-- 这其中包含 `event.preventDefault()` 的情况 --> <div v-on:scroll.passive="onScroll">...</div>
使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用v-on:click.prevent.self会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。
相关文章
- vue get/post请求如何携带cookie的问题
- Vue封装的过度与动画
- Vue学习笔记之Node Sass version 8.0.0 is incompatible with 4.0.0错误
- Vue学习笔记之el-date-picker组建时间格式化方式
- Vue学习笔记之Vue的模板字符串
- vue 学习
- 【VUE】axios
- Vue学习网站
- Vue.js学习笔记(一)
- 可莉要你帮她做一个蹦蹦炸弹管理系统!(Spring Security + Vue前后端分离学习示例)
- Vue技术18.3组件的嵌套
- Vue学习(十七)修饰符
- Vue学习(九)v-model全攻略
- Vue学习(七)capture模式
- elementUi使用dialog的进行信息的添加、删除表格数据时进行信息提示。删除或者添加成功的信息提示(SpringBoot+Vue+MybatisPlus)
- 实战:vue项目中导入swiper插件
- Vue动态组件&异步组件
- vue-学生信息管理系统
- vue实现隐藏浏览器右侧滚动条功能
- vue 全选组件封装
- Vue-i18n框架学习总结
- 【Vue 开发实战】学习笔记48篇(完结)
- 学习vue的一些资源
- Vue.js学习系列一 —— vue-router2学习实践笔记(附DEMO)
- Vue.js学习系列二 —— vuex学习实践笔记(附DEMO)
- Vue.js学习系列四——Webpack打包工具的使用(装修中……)
- 前端学习之VUE基础五(Vue-Router):路由的基本概念、vue-router的基本使用、vue-router嵌套路由、vue-router动态路由匹配、vue-router编程式导航