vue内置内容——指令

本文将对vue的指令进行讲解,但并没有讲完,根据作者学习进度进行更新。我们将学习到以下这些指令:(上一篇文章提到了一些可能对你有帮助的一些知识点。juejin.cn/post/731087...

arduino 复制代码
    v-text
    v-html
    v-show
    v-if
    v-else
    v-else-if

通过CDN使用vue

你可以借助 script 标签直接通过 CDN 来使用 Vue:

xml 复制代码
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

v-text

在Vue.js中,v-text 是一种指令,用于更新元素的文本内容。它类似于插值表达式 {{ }},但有一些区别。与插值表达式 {{ }} 不同,v-text 不会解析 HTML。它将文本内容作为纯文本对待,不会将其中的HTML代码进行解释。这在某些情况下可能是有用的,因为它可以防止潜在的 XSS 攻击。

v-html

v-html 是Vue.js中的一个指令,用于将数据作为 HTML 解释并插入到元素中。这允许你动态地渲染包含 HTML 结构的文本内容。需要注意的是,使用 v-html 可能存在安全风险,因为它允许直接插入HTML。确保在使用用户输入的数据时进行适当的过滤和验证,以防止潜在的跨站脚本攻击(XSS)。

通过一个实例来了解一下

xml 复制代码
<body>
   <div id="app"></div>
   <template id="my-app">
       <h2>{{msg}}</h2>
       <h2 v-text="msg"></h2>

       <h1 v-html="article"></h1>
   </template>

   <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

   <script>
       const app = Vue.createApp({
           template: '#my-app',
           data(){
               return {
                   msg: '指令的使用',
                   article: '<p>这是第一个段落</p><p>这是第二个段落</p>'
               }
           }
       })
       app.mount('#app')
   </script>
</body>

v-show

在Vue.js中,v-show 是一种用于根据条件显示或隐藏元素的指令。与 v-if 不同,v-show 不是通过添加或删除元素来实现的,而是通过CSS的display属性进行切换。

v-if 不同,v-show 在初始渲染时会始终保留元素,并使用 CSS 控制其显示或隐藏,这使得在频繁切换可见性的情况下,v-show 的性能可能更好。然而,如果元素的初始渲染时就需要隐藏,或者在显示和隐藏之间切换的次数较少,通常使用 v-if 会更合适。

v-if

在Vue.js中,v-if 是一种用于条件性地渲染元素的指令。通过 v-if,你可以根据指定的表达式的真假情况来决定是否渲染或移除特定的元素。

需要注意的是,与 v-show 不同,v-if 在初始渲染时会决定是否渲染元素,而不是使用 CSS 控制其显示或隐藏。如果元素的显示与隐藏比较频繁或取决于异步操作的结果,v-show 可能更适合,因为它在切换时不会重复渲染整个元素。

v-else

在Vue.js中,v-else 是与 v-if 一起使用的指令,用于指定在 v-if 表达式为假时渲染的内容。它必须立即跟在一个带有 v-if 的元素或 v-else-if 元素之后。

需要注意的是,v-else 元素必须立即跟在带有 v-ifv-else-if 的元素之后,并且它们必须属于同一父元素。这是因为 Vue.js 会在编译时将它们关联在一起。

一个实例:(这里有两个效果,一个切换一个隐藏,可以到vscode中自行体验)

xml 复制代码
<body>
    <div id="app"></div>
    <template id="my-app">
        <!-- <h2 v-if="status === 1">{{time}}</h2>
        <h2 v-if="status === 2">{{time2}}</h2>
        <h2 v-if="status === 3">{{time3}}</h2> -->

        <h2 @click="hide" v-show="show">{{time}}</h2>

        <!-- v-if v-show 都是控制悬殊隐藏,但后者是css上面的隐藏,但前者是html上的隐藏 -->
        
        <!-- <button @click="change">切换</button> -->
    </template>

    <script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

    <script>
        const app = Vue.createApp({
            template: '#my-app',
            data(){
                return {
                    time: '2023-12-08',
                    time2: '2023年12月08日',
                    time3: '2023/12/08',
                    status: 1,
                    show: true
                }
            },
            methods: {
                change (){
                    if(this.status === 3){
                        this.status = 0
                    }
                    this.status++
                },
                hide(){
                    this.show = false
                }
            }
        })
        app.mount('#app')
    </script>
</body>

v-show 是可以人为放开的

v-if则不能

都看到这了,你不点个赞,说点什么再走?

相关推荐
weedsfly30 分钟前
异步编程全景与事件循环——彻底搞懂 JS 执行机制
前端·javascript
用户0595401744630 分钟前
AI Agent记忆测试踩坑实录:Mock骗了我一周,Mem0+pytest一招破局
前端·css
用户17335980753731 分钟前
纯前端 PDF 数字签名实战:Vue 3 + pdf-lib 在浏览器里完成签名嵌入
前端·javascript
IT_陈寒1 小时前
SpringBoot自动配置的坑,我爬了三天才出来
前端·人工智能·后端
Avan_菜菜8 小时前
AI 能写代码了,为什么我反而开始要求它先写文档?
前端·github·ai编程
JieE21211 小时前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE21212 小时前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
爱勇宝12 小时前
鸿蒙生态的下半场:开发者不只要能开发,还要能赚钱
android·前端·程序员
IT_陈寒15 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
kyriewen15 小时前
我用 AI 一周写完了整个项目,上线第一天就崩了——这是我踩过最贵的 5 个坑
前端·javascript·ai编程