初学者入门Vue:Vue.js中的v-text和v-html指令详解

前言

当使用Vue.js进行前端开发时,我们经常会遇到需要根据条件来显示或隐藏元素的情况。Vue.js提供了两个常用的指令,即v-show和v-if,用于实现条件渲染。本文将详细解释v-show和v-if的使用方式和对应Vue.js实例。

实例代码:

JavaScript 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <vid id="app"></vid>
    <template id="my-app">
        <div>
            <h2 v-if="status===1">{{time}}</h2>
            <h2 v-else-if="status===2">{{time2}}</h2>
            <h2 v-else>{{time3}}</h2>
            <button @click="change">切换</button>

            <h2 @click="hide" v-show="show">{{time}}</h2>
            <!-- v-show是css层次的,用display:none; -->
            <!-- v-if是直接把Dom消失 -->
        </div>
    </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-8',
                    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>
</html>

1. v-show指令

v-show指令用于根据条件动态控制元素的显示和隐藏。当条件为真时,元素会显示;当条件为假时,元素会隐藏。具体使用方式如下:

html 复制代码
<h2 v-show="show">{{time}}</h2>

上述代码中,v-show指令绑定了Vue实例中的show属性,当show为true时,<h2>元素会显示,否则会隐藏。

需要注意的是,v-show是通过修改元素的CSS样式来实现显示和隐藏,使用了display: none属性。因此,即使元素被隐藏,它仍然存在于DOM中,只是不可见。点击函数触发后,h2标签隐藏,但仍可见。如下图:

2. v-if指令

v-if指令也用于根据条件动态控制元素的显示和隐藏,但与v-show有所不同。当条件为真时,元素会渲染到DOM中;当条件为假时,元素会从DOM中移除。具体使用方式如下:

html 复制代码
<h2 v-if="status===1">{{time}}</h2>
<h2 v-else-if="status===2">{{time2}}</h2>
<h2 v-else>{{time3}}</h2>

上述代码中,v-if指令根据不同的条件来选择渲染的元素。当status为1时,第一个<h2>元素会渲染到DOM中;当status为2时,第二个<h2>元素会渲染到DOM中;否则,最后一个<h2>元素会渲染到DOM中。

需要注意的是,v-if是通过添加或移除元素来实现显示和隐藏,因此在切换条件时,元素会被重新创建或销毁。

3.Vue.js

javascript 复制代码
const app = Vue.createApp({
    template: '#my-app',
    data() {
        return {
            time:'2023-12-8',
            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')

上述代码创建了一个Vue实例,并将#my-app模板作为渲染模板。模板中使用了v-if和v-show指令来实现条件渲染和显示隐藏。通过点击按钮和点击<h2>元素,可以改变status和show属性的值,从而动态切换元素的显示与隐藏。关于以上渲染模板的详细内容可以前往往期文章阅读初学者入门Vue:构建一个简单的计数器应用

总结:

v-show和v-if是Vue.js中用于条件渲染的指令。

  • v-show是通过修改元素的CSS样式来显示或隐藏元素,元素仍然存在于DOM中;
  • v-if是通过添加或移除元素来显示或隐藏元素,会重新创建或销毁元素。

v-show和v-if是Vue.js中用于条件渲染的指令。v-show通过修改元素的CSS样式来实现显示和隐藏,元素仍然存在于DOM中;v-if通过添加或移除元素来实现显示和隐藏,会重新创建或销毁元素。选择使用v-show还是v-if取决于具体的需求。如果需要频繁切换元素的显示与隐藏,可以使用v-show,因为它只是修改CSS样式,性能较好。如果条件变化较少且有较多的静态内容,可以使用v-if,因为它会根据条件动态地添加或移除元素,可以减少DOM操作次数。

相关推荐
sen_shan1 小时前
Vue3+Vite+TypeScript+Element Plus开发-04.静态菜单设计
前端·javascript·typescript·vue3·element·element plus·vue 动态菜单
旧识君1 小时前
移动端1px终极解决方案:Sass混合宏工程化实践
开发语言·前端·javascript·前端框架·less·sass·scss
ElasticPDF-新国产PDF编辑器2 小时前
Angular use pdf.js and Elasticpdf tutorial
javascript·pdf·angular.js
揣晓丹2 小时前
JAVA实战开源项目:校园失物招领系统(Vue+SpringBoot) 附源码
java·开发语言·vue.js·spring boot·开源
吃没吃2 小时前
vue2.6-源码学习-Vue 核心入口文件分析
前端
Carlos_sam2 小时前
Openlayers:海量图形渲染之图片渲染
前端·javascript
XH2762 小时前
Android Retrofit用法详解
前端
鸭梨大大大2 小时前
Spring Web MVC入门
前端·spring·mvc
你的人类朋友2 小时前
MQTT协议是用来做什么的?此协议常用的概念有哪些?
javascript·后端·node.js
吃没吃2 小时前
vue2.6-源码学习-Vue 初始化流程分析 (src/core/instance/init.js)
前端