o2o平台有哪些网站,wordpress搜索不能用,小型网站运营,网站备案 法人代表前言#xff1a;
Vue 会根据不同的指令#xff0c;针对标签实现不同的功能。
在 Vue 中#xff0c;指定就是带有 v- 前缀 的特殊 标签属性#xff0c;比如#xff1a;
div v-htmlstr /div
这里问题就来了#xff0c;既然 Vue 会更具不同的指令#…前言
Vue 会根据不同的指令针对标签实现不同的功能。
在 Vue 中指定就是带有 v- 前缀 的特殊 标签属性比如
div v-htmlstr /div
这里问题就来了既然 Vue 会更具不同的指令实现不同的功能那么这个 v-html 是实现什么功能的呢 1、v-html
v-html设置元素的 innerHTML
如何不知道元素的 innerHTML 是什么的话可以先去学习一下 js。
现在有这样一个需求有一个 div需要动态的将一个 a 标签加入到这个 div 中。
于是有的小伙伴就很聪明上篇文章不是讲过插值表达式嘛这简单直接使用插值表达式就行了嘛
bodydiv idapp{{ msg }}/div
/body
!-- 开发版本引入包/生产版本 --
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {msg: a href#程序猿教你打篮球的博客/a}})
/script
但是这样运行代码发现 由此得知插值表达式不具备解析标签的能力
这时 v-html 就发挥出他的作用了
bodydiv idapp v-htmlmsg/div
/body
!-- 开发版本引入包/生产版本 --
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {msg: a href#程序猿教你打篮球的博客/a}})
/script
运行结果 这样一来就能正确的解析标签了当然想要理解这个还是需要 js 的基础如果没有 js 的基础不建议着急学 Vue 哦
通过 DOM 页面也能看出来使用插值表达式和v-html的区别 2、v-show 和 v-if
这两个功能类似但是也有区别所以这里放在一起对比讲解。先说他们两个的作用
v-show: 控制元素显示隐藏
语法v-show表达式 表达式值为 true 显示为 false 隐藏
v-if控制元素显示隐藏(条件渲染)
语法v-if表达式 表达式值为 true 显示为 false 隐藏
这里写一段代码来方便理解
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle.box {margin: 10px;width: 150px;height: 100px;text-align: center;line-height: 100px;border: 1px solid black;border-radius: 10px;box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);}/style
/head
bodydiv idappdiv v-showflag classbox v-show 容器/divdiv v-ifflag classbox v-if 容器/div/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {flag: true}})
/script
/html
执行结果
此时 app 实例中的 flag 的值是 true显然这两个盒子都会显示如果把 flag 设置成 false 呢
const app new Vue({el: #app,data: {flag: false}
}) 很明显这两个 div 都被隐藏了满足上面讲的 v-show 和 v-if 的作用但是上面强调过v-show 和 v-if 的区别是v-if 是条件渲染的当然从显示上来看并不好发现 v-show 和 v-if 的区别。
这里可以在打开页面调试也可以直接按 F12或者右键检查 这里可以发现使用 v-show 的 div 是通过设置 css 里的 display 属性来实现隐藏这个元素的。而 v-if 的 div 是通过条件判断进行创建和移除元素的(条件渲染)
既然他们实现原理不同那么他们的肯定有适用不同的使用场景
v-show 更适合频繁显示隐藏的场景
v-if 适合不频繁显示隐藏的场景
由于 v-if 是根据条件判断来创建元素和移除元素的本质还是在操作 DOM 树所以效率显然是没有 v-show 高的但使用 v-if 可以减少页面的冗余元素因为 v-show 本质上元素还是在 DOM 树上的所以在频繁切换隐藏显示的常见推荐用 v-show不频繁时推荐使用 v-if。
举个例子当鼠标滑过某个元素需要展示详细信息这时肯定使用 v-show 更合适当用户登录了不用显示登录逻辑元素了这时肯定使用 v-if 更合适。 3、v-else 和 v-else-if
这俩就像 JavaCJavaScript 中的 else 和 else if 一样搭配 if 使用的而 这里的 v-else 和 v-else-if 也是需要搭配 v-if 来使用的
语法v-else v-else-if表达式
注意这两个需要紧挨着 v-if 一起使用。
案例需求当 sex 1 时表示男生当 sex 2 表示女生这两种情况之外就定义为火星人没有性别
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title
/head
bodydiv idappp v-ifsex 1性别: 男/pp v-else-ifsex 2性别: 女/pp v-else火星人没有性别/p/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {sex: 1}})
/script
/html 4、v-on
作用注册事件 添加监听 提供处理逻辑
语法
① v-on:事件名 内联语句
② v-on:事件名 methods 中的函数名
什么叫做内联语句简单来说就是一段可执行代码比如 count
案例需求有两个按钮分别是针对 count 进行 -- 操作
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title
/head
bodydiv idappbutton v-on:clickcount---/buttonspan{{ count }}/spanbutton v-on:clickcount/button/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {count: 100}})
/script
/html 这里给第一个按钮注册了 click 监听事件每次 click 一下就会使得 count--由于 Vue 是响应式的所以当 count 的值发生了变化随之页面展示的 count 数据也会发生改变。
第二个按钮也注册了 click 监听事件只是这个事件要处理的逻辑是 count于是每次点击第二个按钮都会使 count 的值发生改变当 Vue 监听到值发生变化了随即就会重新渲染页面的数据了。
由于注册事件用的还是蛮多的每次都写 v-on: 显然太麻烦了于是 Vue 提供了一个简写可以使用 代替 v-on:上面的代码也可以改写成这个样子
bodydiv idappbutton clickcount---/buttonspan{{ count }}/spanbutton clickcount/button/div
/body
在实际中通常会使用这种简写的方式。
截至目前为止讲解的 v-on 注册的事件执行逻辑都是内联语句内联语句只适合逻辑简单的代码如果逻辑复杂代码量长了这时就需要用到第二种语法形式了。
在实例 Vue 对象的时候目前已经见到了两个配置项分别是 eldata现在就需要来认识第三个配置项 methods 了。
在这个 methods 配置项中可以提供很多方法供 Vue 实例使用。
案例需求有一个 button 和 span单击 button 显示 span 中的内容再次单击隐藏 button 隐藏 span 中的内容
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title
/head
bodydiv idapp!-- 这里传要执行的函数名 --button clickfn切换显示隐藏/buttonspan v-showisShow篮球哥/span/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {isShow: true},methods: {fn() {this.isShow !this.isShow}}})
/script
/html
这里 button 绑定了一个单击事件执行的逻辑是 fn 这个函数在 fn 函数中对 isShow 这个变量的值进行了修改。
此时注意在 fn 中是不能直接访问 isShow 的因为 js 会把 isShow 当作成一个全局变量而这里的 isShow 是 app 这个实例的 isShow 变量也可以使用 app.isShow但是这样如果外面的 app 实例名改了里面的 fn 也需要更改于是 Vue 就让所有 methods 配置项中的函数的 this 都指向当前实例
也即 this.isShow app.isShow
看到这细心的小伙伴就会发现这里写函数名那万一这个函数有参数应该怎么写呢很简单加上这个函数要传递的参数即可比如
button clickfn(1, 2)按钮/button
案例需求实现一个功德器有两个按钮分别对应认真工作功德加1摸鱼一会功德减10单击对应按钮增加或减少对应功德初始功德 10
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle.box {margin: 10px;width: 300px;height: 150px;text-align: center;border: 1px solid black;border-radius: 10px;box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.3);}/style
/head
bodydiv idappdiv classboxh1功德器/h1button clickupdate(1)认真工作(1 功德)/buttonbutton clickupdate(-10)摸鱼一会(-10功德)/button/divp功德值: {{ count }}/p/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {count: 10},methods: {update(number) {this.count this.count number}}})
/script
/html
运行结果 5、v-bind
上一篇文章讲解到的插值选择器是不能作用于 html 的标签属性的比如
!-- 错误写法 --
a href{{url}}程序猿教你打篮球/a
作用 v-bind 就是动态的设置 html 的标签属性比如 srchreftitleplaceholder...
语法 v-bind:属性名表达式
案例需求有一个input txt 输入框要求通过 v-bind 动态设置标签的属性
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle/style
/head
bodydiv idappinput typetext v-bind:placeholdermsg v-bind:titleinputTitle/div
/body
script srchttps://cdn.jsdelivr.net/npm/vue2.7.14/script
scriptconst app new Vue({el: #app,data: {msg: 你好呀,inputTitle: hello}})
/script
/html
运行结果 这样写代码冗余性太高了那么多 v-bind能不能跟 v-on 一样可以简写呢当然可以只是跟 v-on 简写有点不同v-bind 可以直接去掉 v-bind比如 :titleinputTitle
上述的代码也可以替换成如下这样
input typetext :placeholdermsg :titleinputTitle 下期预告【后端速成Vue】初识指令(下) 文章转载自: http://www.morning.tqwcm.cn.gov.cn.tqwcm.cn http://www.morning.bytgy.com.gov.cn.bytgy.com http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.ljglc.cn.gov.cn.ljglc.cn http://www.morning.sldrd.cn.gov.cn.sldrd.cn http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn http://www.morning.wynnb.cn.gov.cn.wynnb.cn http://www.morning.rwyw.cn.gov.cn.rwyw.cn http://www.morning.lngyd.cn.gov.cn.lngyd.cn http://www.morning.mhbcy.cn.gov.cn.mhbcy.cn http://www.morning.kkhf.cn.gov.cn.kkhf.cn http://www.morning.xsfg.cn.gov.cn.xsfg.cn http://www.morning.hxycm.cn.gov.cn.hxycm.cn http://www.morning.shawls.com.cn.gov.cn.shawls.com.cn http://www.morning.kkysz.cn.gov.cn.kkysz.cn http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn http://www.morning.smtrp.cn.gov.cn.smtrp.cn http://www.morning.qyllw.cn.gov.cn.qyllw.cn http://www.morning.jkfyt.cn.gov.cn.jkfyt.cn http://www.morning.nlgyq.cn.gov.cn.nlgyq.cn http://www.morning.zwtp.cn.gov.cn.zwtp.cn http://www.morning.nlysd.cn.gov.cn.nlysd.cn http://www.morning.pdtjj.cn.gov.cn.pdtjj.cn http://www.morning.tbzcl.cn.gov.cn.tbzcl.cn http://www.morning.buyid.com.cn.gov.cn.buyid.com.cn http://www.morning.rykn.cn.gov.cn.rykn.cn http://www.morning.gmplp.cn.gov.cn.gmplp.cn http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.mrbzq.cn.gov.cn.mrbzq.cn http://www.morning.gqfks.cn.gov.cn.gqfks.cn http://www.morning.zhengdaotang.cn.gov.cn.zhengdaotang.cn http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn http://www.morning.gnghp.cn.gov.cn.gnghp.cn http://www.morning.lmxzw.cn.gov.cn.lmxzw.cn http://www.morning.wrdlf.cn.gov.cn.wrdlf.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.qsy36.cn.gov.cn.qsy36.cn http://www.morning.pngdc.cn.gov.cn.pngdc.cn http://www.morning.fhbhr.cn.gov.cn.fhbhr.cn http://www.morning.wbyqy.cn.gov.cn.wbyqy.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.sfnr.cn.gov.cn.sfnr.cn http://www.morning.yhpq.cn.gov.cn.yhpq.cn http://www.morning.qzqjz.cn.gov.cn.qzqjz.cn http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn http://www.morning.kwwkm.cn.gov.cn.kwwkm.cn http://www.morning.bhxzx.cn.gov.cn.bhxzx.cn http://www.morning.yxlhz.cn.gov.cn.yxlhz.cn http://www.morning.fcftj.cn.gov.cn.fcftj.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.pmrlt.cn.gov.cn.pmrlt.cn http://www.morning.mlntx.cn.gov.cn.mlntx.cn http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn http://www.morning.fqljq.cn.gov.cn.fqljq.cn http://www.morning.kqpq.cn.gov.cn.kqpq.cn http://www.morning.bxqry.cn.gov.cn.bxqry.cn http://www.morning.zpfr.cn.gov.cn.zpfr.cn http://www.morning.hgscb.cn.gov.cn.hgscb.cn http://www.morning.nzmhk.cn.gov.cn.nzmhk.cn http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn http://www.morning.zbpqq.cn.gov.cn.zbpqq.cn http://www.morning.kmwbq.cn.gov.cn.kmwbq.cn http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.ngzkt.cn.gov.cn.ngzkt.cn http://www.morning.nqwz.cn.gov.cn.nqwz.cn http://www.morning.wsxly.cn.gov.cn.wsxly.cn http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.tthmg.cn.gov.cn.tthmg.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.rlxg.cn.gov.cn.rlxg.cn http://www.morning.sxhdzyw.com.gov.cn.sxhdzyw.com http://www.morning.ypqwm.cn.gov.cn.ypqwm.cn http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn