Vue核心 绑定样式 条件渲染

news/2024/10/23 22:35:29/

1.11.绑定样式

class样式:

  • 写法::class=“xxx”,xxx 可以是字符串、数组、对象
  • :style=“[a,b]” 其中a、b是样式对象
  • **:style=“{fontSize: xxx}”**其中 xxx 是动态值
    • 字符串写法适用于:类名不确定,要动态获取
    • 数组写法适用于:要绑定多个样式,个数不确定,名字也不确定
    • 对象写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用
<!DOCTYPE html>
<head><meta charset="UTF-8"><title>绑定样式</title><style>.basic {width: 300px;height: 50px;border: 1px solid black;}.happy {border: 3px solid red;background-color: rgba(255, 255, 0, 0.644);background: linear-gradient(30deg, yellow, pink, orange, yellow);}.sad {border: 4px dashed rgb(2, 197, 2);background-color: skyblue;}.normal {background-color: #bfa;}.atguigu1 {background-color: yellowgreen;}.atguigu2 {font-size: 20px;text-shadow: 2px 2px 10px red;}.atguigu3 {border-radius: 20px;}</style><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script>
</head>
<body><!-- 准备好一个容器 --><div id="root"><!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 --> <div class="basic" :class="mood" @click="changeMood">{{name}}</div><br/><br/><!-- 绑定class样式--数组写法,适用于:要绑定的样式个数不确定、名字也不确定 --><div class="basic" :class="classArr">{{name}}</div><br/><br/><!-- 绑定class样式--对象写法,适用于:要绑定的样式个数确定、名字也确定,但要动态决定用不用 --><div class="basic" :class="classObj">{{name}}</div><br/><br/><!-- 绑定style样式--对象写法 --><div class="basic" :style="styleObj">{{name}}</div><br/><br/><!-- 绑定style样式--数组写法 --><div class="basic" :style="styleArr">{{name}}</div></div><script type="text/javascript">// 阻止vue在启动时生成生产提示Vue.config.productionTip = falsenew Vue({el: '#root',data:{name: '尚硅谷',mood: 'normal',classArr: ['atguigu1', 'atguigu2', 'atguigu3'],classObj: { atguigu1: false, atguigu2: false},styleObj: { fontSize: '40px', color: 'red'},styleObj: { fontSize: '40px', color: 'red', },styleArr: [ { fontSize: '40px', color: 'blue' }, { backgroundColor: 'gray',}]},methods: { changeMood() { const arr = ['happy', 'sad', 'normal']; const index = Math.floor(Math.random() * 3); this.mood = arr[index];}});</script>
</body>
</html>

在这里插入图片描述


1.12.条件渲染

v-if

  • 写法 跟 if else 语法类似

    v-if=“表达式”

    v-else-if=“表达式”

    v-else

  • 适用于:切换频率较低的场景,因为不展示的DOM元素直接被移除

  • 注意:v-if可以和v-else-if v-else一起使用,但要求结构不能被打断

v-show

  • 写法:v-show=“表达式”
  • 适用于:切换频率较高的场景
  • 特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉display: none

备注:使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到

template标签不影响结构,页面html中不会有此标签,但只能配合v-if,不能配合v-show

<!DOCTYPE html>
<head><meta charset="UTF-8"><title>条件渲染</title><!-- 引入Vue --><script type="text/javascript" src="../js/vue.js"></script>
</head>
<body><!--条件渲染:1.v-if写法:(1).v-if="表达式"(2).v-else-if="表达式"(3).v-else="表达式"适用于: 切换频率较低的场景。特点: 不展示的DOM元素直接被移除。注意: v-if可以和v-else-if、v-else一起使用,但要求结构不能被"打断"2.v-show写法: v-show="表达式"适用于:切换频率较高的场景。特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉3.备注: 使用v-if的时,元素可能无法获取到,而使用v-show一定可以获取到。--><!-- 准备好一个容器 --><div id="root"><h2>当前的n值是:{{ n }}</h2><button @click="n++">点我n+1</button><!-- 使用v-show做条件渲染 --><!-- <h2 v-show="false">欢迎来到{{name}}</h2> --><!-- <h2 v-show="1 === 1">欢迎来到{{name}}</h2> --><!-- 使用v-if做条件渲染 --><!-- <h2 v-if="false">欢迎来到{{name}}</h2> --><!-- <h2 v-if="1 === 1">欢迎来到{{name}}</h2> --><!-- v-else和v-else-if --><!-- <div v-show="n === 1">Angular</div> --><!-- <div v-show="n === 2">React</div> --> <!-- <div v-show="n === 3">Vue</div> --><!-- <div v-if="n === 1">Angular</div> --><!-- <div v-else-if="n === 2">React</div> --><!-- <div v-else-if="n === 3">Vue</div> --><!-- <div v-else>哈哈</div> --><!-- v-if与template的配合使用 --> <template v-if="n === 1"> <h3>你好</h3> <h3>尚硅谷</h3> <h3>北京</h3> </template></div><script type="text/javascript">// 阻止vue在启动时生成生产提示Vue.config.productionTip = falsenew Vue({ el: '#root',  	  data:{name:'尚硅谷',n:0},});</script>
</body>
</html>

http://www.ppmy.cn/news/63778.html

相关文章

Vite+Vue3 加载速度优化

可以考虑从以下几个方面优化。 静态资源拆分打包 在常规打包方法下&#xff0c;所有的第三方依赖将会都打包在一个 vendor.js 文件里&#xff0c;首次打开页面时&#xff0c;服务器会先加载这个大文件&#xff0c;导致白屏时间过长。 而我们打包时&#xff0c;事先将依赖拆分…

ASEMI代理ADI亚德诺ADXL345BCCZ-RL7车规级芯片

编辑-Z ADXL345BCCZ-RL7特点&#xff1a; 超低功率&#xff1a;在测量模式下低至23A 在VS2.5 V的待机模式下为0.1A&#xff08;典型&#xff09; 功耗会随带宽自动调整 用户可选分辨率 固定的10位分辨率 全分辨率&#xff0c;其中分辨率随着g范围的增加而增加&#xff0…

AOF 持久化详解

文章目录 AOF 相关配置AOF 文件的修复AOF 文件格式RESP 协议查看 AOF 文件清单文件 AOF RewriteRewrite 策略手动Rewrite自动Rewrite AOF 持久化过程AOF优缺点AOF与RDB混合持久化 AOF (Append Only File) 是把所有对内存进行修改的指令&#xff08;写操作&#xff09;以独立日志…

手写自己的Springboot-1-整合tomcat

文章目录 创建自己的Springboot创建项目注册、启动Spring容器启动tomcat 引用测试 创建自己的Springboot 首先明确本文章想要达到的目的,就是引入我们自己写的Springboot项目的依赖,无需配置,就可以达到处理普通请求的效果. 这里有一个非常简单的Springboot项目,项目里面就只…

对于零基础小白来说,转行学云计算和java哪个更好一些?求推荐

对于零基础小白来说&#xff0c;转行学云计算和java哪个更好一些&#xff1f; 云计算和Java是两个不同的技术领域&#xff0c;虽然它们都与计算机网络、分布式系统和互联网应用程序等相关&#xff0c;但它们的学习重点和应用场景也不同。虽然他们都是非常有前途的IT领域&#x…

代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

二分查找&#xff1a; 题目链接&#xff1a;力扣 前提&#xff1a;数组为有序数组&#xff0c;且数组中无重复元素。 &#xff08;一旦有重复元素&#xff0c;则二分法返回的元素下标不可能唯一&#xff09; 二分法优势&#xff1a;时间复杂度O(logn) 注意要点&#xff1a;…

22-Django框架基础

1 实现更新书籍信息 更改原有的书籍信息也是经常用到的功能&#xff0c;比如价格的调动等&#xff0c;那么下面就来实现这个功能&#xff0c;首先还是编写模板层页面&#xff0c;在 templates/index 中新建 update_book.html 页面&#xff0c;代码所下所示&#xff1a; <!…

数据结构与算法十 并查集

一 并查集 并查集是一种树型的数据结构 &#xff0c;并查集可以高效地进行如下操作&#xff1a; 查询元素p和元素q是否属于同一组合并元素p和元素q所在的组 1.1 并查集结构 并查集也是一种树型结构&#xff0c;但这棵树跟我们之前讲的二叉树、红黑树、B树等都不一样&#xf…