el vue 手机号_VUE里必用的一条指令,你一定要会!(视频版)

喜欢我的话,点击上方 蓝色 文字关注吧?

不喜欢看文字的同学,可以观看下方?视频。

VUE有一个条件指令:v-if。

它表示只有条件成立时才会渲染内容。类似js里的if语句,只不过它是用在模版里的if。

用法如下:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <div v-if="isShow">刘小妞的栖息地div>  div>  body>html><script>  var app = new Vue({    'el':'#app',    'data':{      'isShow':true    }  })script>

也可以用v-else指令,表示否则,类似js里的else语句。

用法如下:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <div v-if="isShow">刘小妞的栖息地div>    <div v-else>vue课程div>  div>  body>html><script>  var app = new Vue({    'el':'#app',    'data':{      'isShow':false    }  })script>

还有一个v-else-if指令,类似js里的else if语句。

用法如下:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <div v-if="flag < 0">刘小妞的栖息地div>    <div v-else-if="flag == 0">vue课程div>    <div v-else>条件指令div>  div>  body>html><script>    var app = new Vue({    'el':'#app',    'data':{      'flag':3    }  })script>

v-else必须跟在v-if或者v-else-if后面。

v-if、v-else、v-else-if是可以嵌套使用的,并且它们是可以用在template标签上的。

用template标签最大的好处是可以不用额外添加不需要的标签,页面最终渲染出来是不包括template标签的。比如:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <template v-if="loginType == 'phone'">      <label>手机号label>      <input placeholder="输入手机号">    template>    <template v-else>      <label>邮箱label>      <input placeholder="输入邮箱">    template>  div>  body>html><script>    var app = new Vue({    'el':'#app',    'data':{      'loginType':'phone'    }  })script>

用key管理可复用的元素

VUE为了更高效的渲染元素,通常会复用已有的元素,上面的例子label和input就会复用。我们可以加一个按钮来改变一下loginType的值。

代码如下:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <template v-if="loginType == 'phone'">      <label>手机号label>      <input placeholder="输入手机号">    template>    <template v-else>      <label>邮箱label>      <input placeholder="输入邮箱">    template>        <button @click="change">切换button>  div>  body>html><script>  var app = new Vue({    'el':'#app',    'data':{      'loginType':'phone'    },    methods:{      change(){        this.loginType = 'email'      }    }  })script>

显示手机号时,我们输入手机号,点击切换按钮,发现刚刚输入的手机号仍然显示在输入框里。input只是换了一下placeholder的值。

有时候,我们确实需要显示两个不同的input,这个时候,我们给input添加不同的key值就可以了,比如:

<html>  <head>    <meta charset="utf-8">    <title>vue-条件title>    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>  head>  <body>  <div id="app">    <template v-if="loginType == 'phone'">      <label>手机号label>      <input placeholder="输入手机号" key="phone">    template>    <template v-else>      <label>邮箱label>      <input placeholder="输入邮箱" key="email">    template>        <button @click="change">切换button>  div>  body>html><script>  var app = new Vue({    'el':'#app',    'data':{      'loginType':'phone'    },    methods:{      change(){        this.loginType = 'email'      }    }  })script>

v-show

v-show指令也是根据条件显示。

v-show和v-if的区别:

v-show不能和v-else一起用,也不能用在template标签上。

v-show是通过改变标签css属性里的display来实现的显示隐藏。

显示的时候display值为block,隐藏的时候,display值为none。

不管显示隐藏,DOM中始终会有v-show的元素。

v-if则不然,只有v-if的值为真时,才会渲染元素。

如果切换比较频繁的话,用v-show好点,否则,用v-if更好一些。


不推荐v-if和v-for同时使用(会大大降低页面效率)。

当v-if和v-for一起使用时,v-for比v-if的优先级高。

也就是说,无论v-if是否为真,v-for都会执行一遍。

同时使用的情况一般会有两种情况。

一种是v-if的判断条件需要用到v-for里每一项里的数据,这种情况,我们改成计算属性,把计算过滤后的结果返回就可以了,至于计算属性,我们后面会讲。

还有一种情况是v-if的判断条件和v-for里的数据没关系,这种情况,我们直接把v-if单独拿出来判断就可以了,比如:

<ul>      <li v-for="item in list" v-if="isShow">li>ul>

我们可以改为如下代码:

<ul v-if="isShow">    <li v-for="item in list">li>ul>

096286462d08d9c8a279ab79c62f12c1.png

往期 精彩 回顾

初识框架——VUE(视频版)

还在写普通函数吗?赶快试试箭头函数吧!(视频版)

手把手教你CSS3动画小实例(视频版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值