当前位置: 首页 > news >正文

vue中绑定class样式和条件渲染

绑定class样式

  • 字符串写法: 适用于: 样式的类名不确定,需要动态指定

  • 数组写法: 适用于: 要绑定的样式个数不确定,名字也不确定

  • 绑定对象:适用于:要绑定的样式个数确定、名字确定、但动态决定决定用不用

  • <head>.normal{}.happy{}.sad{}
    </head>
    <body>//basic和class都是css修饰,而:class="mood"则是动态的随data中的mood改变而改变//字符串写法<div class="basic" :class="mood" @click="change">{{name}}</div>/*数组写法<div class="basic" :class="arr">{{name}}</div>*//*对象写法<div class="basic" :class="classObj">{{name}}</div>*/
    </body>
    <script>new Vue({el: "#root",data: {name: '乡民',mood: 'normal',//数组字符串/*arr:['happy','normal','sad']*//*对象classObj:{happy: false,normal: false,}*/},methods: {change: {//下列实现的是让mood随机显示'happy','normal','sad'这三种样式中的其中一个const arr = ['happy','normal','sad']//floor是让其取整,Math.random从0到3,取头不取尾const index = Math.floor(Math.random()*3)this.mood = arr[index]}}})
    </script>
  • 绑定style

  • 第一种style绑定方法

  • <body>{fontSize:size + 'px'}的原型是font-size: 10px,直接用css格式vue不承认<div class="basic" :style="{fontSize:size + 'px'}">{{name}}</div>
    </body>
    <script>const vm = new Vue({el:'#root',data: {size: 40}})
    </script>
    第二种style绑定方法<body><div class="basic" :style="fontSize">{{name}}</div>
    </body>
    <script>const vm = new Vue({el:'#root',data: {fontSize: {fontSize: '40px'}}})
    </script>

条件渲染

  • v-show做条件渲染

  • v-show="true"将页面的数据显示,v-show="false"只是用css将数据隐藏起来。也就是display: none;

  • v-if="true"也是将页面数据进行显示,v-if="false" 直接将页面的数据删除

  • v-if与v-else-if要挨着写中间不可添加任何标签,如< div>@</div

  • <body><div id="root"><h2>当前的n值为:{{n}}</h2><button :click="n++">点我n+1</button>/*使用v-show做条件渲染<h2 v-show="false">{{name}}</h2><h2 v-show="true">{{name}}</h2>v-if做条件渲染<h2 v-if="false">{{name}}</h2><h2 v-if="true">{{name}}</h2>//v-if和v-else-if,当v-if条件成立时,直接跳出v-else-if和v-else判断<div v-if="n == 1">{{苹果}}</div>/*<div>@</div>*/<div v-else-if="n == 2">{{栗子}}</div><div v-else-if="n == 3">{{榴念}}</div><div v-else>{{榴念}}</div>*/</div>
    </body>
    <script>const vm = new Vue({el:'#root',data: {name: 'BOY' }})
    </script>
    • 当重复出现相同的条件时可以用div标签统一实现

    • template标签相对于div标签,template不会影响DOM(页面)的格式

    • <body><div  v-show="true"><div>{{栗子}}</div><div>{{榴念}}</div><div>{{梨子}}</div></div>/*<template v-show="true"><div>{{栗子}}</div><div>{{榴念}}</div><div>{{梨子}}</div></template>*/
      </body>
      <script>const vm = new Vue({el:'#root',data: {name: 'BOY' }})
      </script>

 

相关文章:

  • SmartSoftHelp 7.0 最专业的c#代码生成器
  • EMQX vs Mosquitto | MQTT Broker 对比
  • 振弦式渗压计的安装方式及注意要点
  • 英伟达AI布局的新动向:H200 GPU开启生成式AI的新纪元
  • 解决 uniapp 开发微信小程序 不能使用本地图片作为背景图 问题
  • 新生儿奶藓:原因、科普和注意事项
  • 软通动力赋能触觉智能打造嵌入式鸿蒙原生系统应用标杆
  • Linux系统下安装RabbitMQ超简单教程(非详细)(Centos8)
  • 【洛谷 P3853】[TJOI2007] 路标设置 题解(二分答案+递归)
  • 08.智慧商城——购物车布局、全选反选、功能实现
  • OpenHarmony源码下载
  • 光纤的跳线和尾纤
  • C 语言结构体(struct)
  • EtherCAT主站SOEM -- 6 -- SOEM之ethercatcoe.h/c(ethercateoe/foe/soe)文件解析
  • vscode终端npm install报错
  • css布局,左右固定中间自适应实现
  • ECMAScript入门(七)--Module语法
  • ERLANG 网工修炼笔记 ---- UDP
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript服务器推送技术之 WebSocket
  • Javascript基础之Array数组API
  • magento 货币换算
  • MySQL数据库运维之数据恢复
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Python socket服务器端、客户端传送信息
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 从0实现一个tiny react(三)生命周期
  • 从PHP迁移至Golang - 基础篇
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 回流、重绘及其优化
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 试着探索高并发下的系统架构面貌
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • Spring Batch JSON 支持
  • 我们雇佣了一只大猴子...
  • ​Java并发新构件之Exchanger
  • ​水经微图Web1.5.0版即将上线
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #100天计划# 2013年9月29日
  • #13 yum、编译安装与sed命令的使用
  • ()、[]、{}、(())、[[]]命令替换
  • (02)vite环境变量配置
  • (1)(1.11) SiK Radio v2(一)
  • (8)STL算法之替换
  • (C语言)fgets与fputs函数详解
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)计算机毕业设计大学生兼职系统
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (一)appium-desktop定位元素原理
  • .aanva