Vue3学习笔记(4.0)

32 篇文章 0 订阅
23 篇文章 0 订阅

vue.js为两个最为常用的指令提供了特别的缩写:

//全称
<a v-bind:href="url"></a>

//缩写
<a :href="url"></a>

v-on缩写

//全称
<a v-on:click="doSomething"></a>

//缩写
<a @click="doSonthing"></a>

条件判断

条件判断使用v-if指令,指令的表达式返回true时才会显示.

由于v-if是一个指令,所以必须将它添加到一个元素上。如果是多个元素,可以包裹在<template>元素上,并在上面使用v-if。最终的渲染结果将不包含<template>元素。

<!--
 * @Author: RealRoad1083425287@qq.com
 * @Date: 2023-03-27 14:37:59
 * @LastEditors: Mei
 * @LastEditTime: 2023-03-27 14:41:29
 * @FilePath: \vscode\v-if.html
 * @Description: 
 * 
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue_doc/vue.global3.js"></script>
</head>
<body>
    <div id="mez">
        <template v-if="seen">
            <h1>这是一个段落标题</h1>
            <p>正文1</p>
            <p>正文2</p>
            <p>正文3</p>
        </template>
    </div>

    <script>
        const change={
            data(){
                return{
                    seen:true
                }
            }
        }

        Vue.createApp(change).mount('#mez')
    </script>
</body>
</html>

 v-else

可以用v-else指令给v-if添加一个"else"块:

我们还使用这个例子来玩一玩

<!--
 * @Author: RealRoad1083425287@qq.com
 * @Date: 2023-03-27 14:37:59
 * @LastEditors: Mei
 * @LastEditTime: 2023-03-27 14:46:02
 * @FilePath: \vscode\v-if.html
 * @Description: 
 * 
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue_doc/vue.global3.js"></script>
</head>
<body>
    <div id="mez">
        <template v-if="seen">
            <h1>这是一个段落标题</h1>
            <p>正文1</p>
            <p>正文2</p>
            <p>正文3</p>
        </template>
        <template v-else>
            <h1>this is a title</h1>
            <p>contex1</p>
            <p>context2</p>
            <p>context3</p>
        </template>
    </div>

    <script>
        const change={
            data(){
                return{
                    seen:false
                }
            }
        }

        Vue.createApp(change).mount('#mez')
    </script>
</body>
</html>

在seen处等于false,所以就显示了下面一个template的内容

 编程这玩意就是要试着举一反三,同样的例子,我们再来看v-else-if,感觉和js或大部分的编程语言类似,只是前面多了v-而已。

<!--
 * @Author: RealRoad1083425287@qq.com
 * @Date: 2023-03-27 14:37:59
 * @LastEditors: Mei
 * @LastEditTime: 2023-03-27 14:52:01
 * @FilePath: \vscode\v-if.html
 * @Description: 
 * 
 * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="vue_doc/vue.global3.js"></script>
</head>
<body>
    <div id="mez">
        <template v-if="seen">
            <h1>这是一个段落标题</h1>
            <p>正文1</p>
            <p>正文2</p>
            <p>正文3</p>
        </template>
        <template v-else-if="seen2">
            <h1>this is a title</h1>
            <p>contex1</p>
            <p>context2</p>
            <p>context3</p>
        </template>
        <template v-else-if="seen3">
            <h1>1111</h1>
            <p>c2222</p>
            <p>3333</p>
            <p>4444</p>
        </template>
        <template v-else>
            <h1>赵云</h1>
            <p>子龙</p>
            <p>翼德</p>
            <p>孟德</p>
        </template>
    </div>

    <script>
        const change={
            data(){
                return{
                    seen:false
                }
            }
        }

        Vue.createApp(change).mount('#mez')
    </script>
</body>
</html>

 

 

例子都不再换的,中间又添加了v-else-if项而已,这里只是seen不满足的情况,也就是不会有seen2,seen3.那我们来把对应的seen2或seen3设置为TRUE,那么其他的都是false喽。

 

 OK,完美!和我想象的一样。注意:当我们使用v-else时,都是放在最后一项用的,不要弄错v-else和v-else-if的顺序。

控制显示或不显示还有一个就是v-show:

<div id="app">
    <h1 v-show="ok">Hello!</h1>
</div>
    
<script>
const app = {
  data() {
    return {
      ok: false
    }
  }
}
 
Vue.createApp(app).mount('#app')

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mez_Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值