一、前言
记录学习Vue的点滴,避免遗忘,共勉之,本博客部分例子和理论来自《Vue.js权威指南》一书。
1 | 使用工具: WebStorm |
二、基础学习
2.1 插值表达式简单使用
例如:
1 | <div id="app"> |
使用双大括号{{}}`将数据渲染到页面,例子中的标签`{{text}}
将会被相应的数据对象text属性的值替换掉,当text的值发生改变时,文本中的值也会联动地发生变化。如只需渲染一次,后续数据不再关心,可以通过“*”实现,如 :
1 | <span>Text: {{*text}}</span> |
1 | <script src="../js/vue.js"></script> |
显示结果:Text: 学习Vue!!
2.2 基本指令
指令是带有v-
前缀的特殊特性,其值限定为绑定表达式,也就是 JavaScript表达式和过滤器。指令的作用是当表达式的值发生变化时,将这个变化也反映到DOM上。
2.2.1 v-if 指令
v-if
指令可以完全根据表达式的值在DOM中生成或移除一个元素。如果v-if表达式赋值为fale,那么对应的元素就会从DOM中移除:否则,对应元素的一个克隆将被重新插入DOM中。
1 | <div id="app"> |
1 | var vue1 = new Vue({ |
根据show设置的true或者false值(可使用表达式判断,如show: 2 > 1
),来控制上面的span是否显示,通过审查元素可知,当show为false时,该span不存在。
2.2.2 v-show 指令
v-show
指令是根据表达式的值来显示或者隐藏HTML元素。当 v-show赋值为 false时,元素将被隐藏。查看DOM时,会发现元素上多了一个内联样式 style=" display:none"
,v-show不支持<template>
语法,不能加在body标签。
1 | <div id="app"> |
1 | var vue1 = new Vue({ |
当show为true时,审查元素为:
1 | <span>路漫漫其修远兮,吾将上下而求索</span> |
当show为false时,审查元素为:
1 | <span style="display: none;">路漫漫其修远兮,吾将上下而求索</span> |
v-if是惰性的——如果初始渲染时条件为假,则什么也不做,在条件第一次变为真时才开始局部编译(编译会被缓存起来)。
相比之下,v-show简单得多—元素始终被编译并保留,只是简单地基于CSS切换。
一般来说,vif有更高的切换消耗,而v-show有更高的初始渲染消耗。因此,如果需要频繁地切换,则使用v-show较好:如果在运行时条件不大可能改变,则使用v-if较好。
2.2.3 v-else 指令
v-else
就是 JavaScript中else的意思, 必须跟着v-if(书上的内容是:它必须跟着v-if或v-show,但是我试了几次,加上百度搜索,v-show是不支持跟v-else的),充当else功能。
1 | <div id="app"> |
1 | var vue1 = new Vue({ |
2.2.4 v-model 指令
v- model
指令用来在 Input、 select、text、 checkbox、 radio等表单控件元素上创建双向数据绑定。根据控件类型v- model自动选取正确的方法更新元素。尽管有点神奇,但是v- model不过是语法糖,在用户输入事件中更新数据,以及特别处理一些极端例子。
1 | <div id="app"> |
1 | var vue1 = new Vue({ |
一直都听说Vue的双向数据绑定,但是真正使用的时候才体会到真香
,当选项发生变化时,值将会自动进行变化(最后的div就是显示数据,可在页面直观看到)。
2.2.5 v-for 指令
我们可以使用v-for指令基于源数据重复渲染元素,比较常见的就是遍历数组或者集合。
1 | <ul> |
1 | var vue1 = new Vue({ |
2.2.6 v-text 指令
v-text指令可以更新元素的 textcontent在内部,{ Mustache}插值也被编译为 textNode的一个v-text指令。
1 | <span v-text="text"></span> |
1 | var vue1 = new Vue({ |
上面的显示基本与插值表达式效果协同,即与<span>{{text}}</span>
相同。
2.2.7 v-html 指令
v-html指令可以更新元素的 innerHTML。内容按普通HTML插入——数据绑定被忽略。
1 | <span v-html="html"></span> |
1 | var vue1 = new Vue({ |
页面显示的字体颜色为设定的#7fff00
2.2.8 v-bind 指令
y-bind指令用于响应更新HTML特性,将一个或多个 attribute,或者一个组件prop动态绑达式。 v-bind可以简写为:
1 | <img v-bind:src="imgSrc"> |
1 | var vue1 = new Vue({ |
- 本文作者: tenyears
- 本文链接: https://tenyears94.gitee.io/2021/04/05/Vue学习记录之指令学习/
- 版权声明: 本博客所有文章转载请注明出处!