🌵Vue本地应用(显示切换,属性绑定)

简介: 🌵Vue本地应用(显示切换,属性绑定)

1. v-show指令


切换元素的显示状态bc8c021575da4837b4ae542c42d1c575_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.gif

// 源码:
<body>
    <div id="app">
        <button @click="changeisShow">切换显示</button>
        <img src="images/13.jpg" v-show="isShow">
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                isShow: true,
            },
            methods: {
                changeisShow: function () {
                    this.isShow = !this.isShow;
                }
            }
        })
    </script>
</body>


总结:


  • v-show指令的作用是:根据真假切换元素的显示状态
  • 原理是修改元素的display,显示隐藏,从下面的gif图中可以看出
  • 指令后面的内容,最终都会解析为布尔值
  • 值为true元素显示,值为false元素隐藏
  • 数据改变之后,对应元素的显示状态会同步更新


2.v-if指令


根据表达式的真假,切换元素的显示与隐藏(操作DOM元素)


语法:


    <div id="app">
        <p v-if="true">我是p1标签</p>
        <p v-if="isShow">我是p2标签</p>
        <p v-if="表达式">我是p3标签</p>
    </div>


        var app = new Vue({
            el: "#app",
            data: {
                isShow: false,
            }
        })

fee00e26172e44dc9c8f81cb359c815d_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.gif


从上面的gif图中我们可以发现v-if指令操作的是DOM树,操作DOM对性能消耗比较大,而v-show指令并没有操作DOM。


总结:


v-if指令的作用是:根据表达式的真假切换元素的显示状态。

本质是通过操作DOM元素来切换显示状态。

表达式的值为true,元素存在DOM树中,值为false,从DOM树中移除。

频繁的切换使用v-show,反之使用v-if,前者的切换消耗小。


3.v-bind指令


设置元素的属性(比如src,title,class)


语法:


    <div id="app">
        <img v-bind:src="imgSrc">
        <p v-bind:class="isActive?'active':''"></p>
        <!-- 该三元表达式写法较复杂 -->
        <p v-bind:class="{active:isActive}"></p>
    </div>
        var app =new Vue({
            el:"#app",
            data:{
                imgSrc:"图片地址",
                isActive:false
            }
        })

d92e9afc7f454cb4a637c470759e3219_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.gif


总结:


  • v-bind指令的作用是:为元素绑定属性。
  • 完整写法是v-bind:属性名。
  • 简写的话可以直接省略v-bind,只保留:属性名。
  • 需要动态的增删class建议使用对象的方式。


4.图片切换案例

image.png

// 源码:
<body>
    <div id="app">
        <h2>校园食堂</h2>
        <img :src="imgArr[index]" alt="">
        <a href="#" class="prev" @click="clickPrev" v-show="index!=0"></a>
        <a href="#" class="next" @click=clickNext v-show="index<imgArr.length-1"> </a>
    </div>
    <script>
        var app = new Vue({
            el: "#app",
            data: {
                imgArr: [
                    "images/1.jpg",
                    "images/2.jpg",
                    "images/3.jpg",
                    "images/4.jpg",
                    "images/5.jpg",
                    "images/6.jpg",
                    "images/7.jpg",
                    "images/8.jpg",
                    "images/9.jpg",
                    "images/10.jpg"
                ],
                index: 0
            },
            methods: {
                clickPrev: function () {
                    this.index--
                },
                clickNext: function () {
                    this.index++
                }
            }
        })
    </script>
</body>


总结:


  • 列表数据使用数组保存
  • v-bind指令可以设置元素属性,比如src
  • v-show和v-if都可以切换元素的显示状态,频繁切换用v-show。
相关文章
|
5天前
|
JavaScript
Vue基础知识总结 4:vue组件化开发
Vue基础知识总结 4:vue组件化开发
|
5天前
|
存储 JavaScript
Vue 状态管理工具vuex
Vue 状态管理工具vuex
|
11天前
|
缓存 JavaScript UED
Vue 中实现组件的懒加载
【10月更文挑战第23天】组件的懒加载是 Vue 应用中提高性能的重要手段之一。通过合理运用动态导入、路由配置等方式,可以实现组件的按需加载,减少资源浪费,提高应用的响应速度和用户体验。在实际应用中,需要根据具体情况选择合适的懒加载方式,并结合性能优化的其他措施,以打造更高效、更优质的 Vue 应用。
|
10天前
|
JavaScript
如何在 Vue 中使用具名插槽
【10月更文挑战第25天】通过使用具名插槽,你可以更好地组织和定制组件的模板结构,使组件更具灵活性和可复用性。同时,具名插槽也有助于提高代码的可读性和可维护性。
15 2
|
10天前
|
JavaScript
Vue 中的插槽
【10月更文挑战第25天】插槽的使用可以大大提高组件的复用性和灵活性,使你能够根据具体需求在组件中插入不同的内容,同时保持组件的结构和样式的一致性。
13 2
|
10天前
|
前端开发 JavaScript 容器
在 vite+vue 中使用@originjs/vite-plugin-federation 模块联邦
【10月更文挑战第25天】模块联邦是一种强大的技术,它允许将不同的微前端模块组合在一起,形成一个统一的应用。在 vite+vue 项目中,使用@originjs/vite-plugin-federation 模块联邦可以实现高效的模块共享和组合。通过本文的介绍,相信你已经了解了如何在 vite+vue 项目中使用@originjs/vite-plugin-federation 模块联邦,包括安装、配置和使用等方面。在实际开发中,你可以根据自己的需求和项目的特点,灵活地使用模块联邦,提高项目的可维护性和扩展性。
|
11天前
|
缓存 JavaScript UED
Vue 中异步加载模块的方式
【10月更文挑战第23天】这些异步加载模块的方式各有特点和适用场景,可以根据项目的需求和架构选择合适的方法来实现模块的异步加载,以提高应用的性能和用户体验
|
6月前
|
JavaScript API
【vue实战项目】通用管理系统:api封装、404页
【vue实战项目】通用管理系统:api封装、404页
74 3
|
6月前
|
人工智能 JavaScript 前端开发
毕设项目-基于Springboot和Vue实现蛋糕商城系统(三)
毕设项目-基于Springboot和Vue实现蛋糕商城系统
|
6月前
|
JavaScript Java 关系型数据库
毕设项目-基于Springboot和Vue实现蛋糕商城系统(一)
毕设项目-基于Springboot和Vue实现蛋糕商城系统
168 0

相关实验场景

更多
下一篇
无影云桌面