1、绑定样式

没啥好说的、我觉得还没直接引入外部写好的css样式方便(个人想法)

1.1 基础知识

绑定样式:

  • 1、class样式
    写法:class=“xxx” xxx可以是字符串、对象、数组。
    字符串写法适用于:类名不确定,要动态获取。
    对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。
    数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。
  • 2、style样式
    :style="{fontSize: xxx}“其中xxx是动态值。
    :style=”[a,b]"其中a、b是样式对象。

1.2 代码实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>标题</title>
  6. <!-- 引入vue -->
  7. <script type="text/javascript" src="../js/vue.js"></script>
  8. <style>
  9. .basic {
  10. width: 400px;
  11. height: 100px;
  12. border: 1px solid black;
  13. }
  14. .happy {
  15. border: 4px solid red;
  16. ;
  17. background-color: rgba(255, 255, 0, 0.644);
  18. background: linear-gradient(30deg, yellow, pink, orange, yellow);
  19. }
  20. .sad {
  21. border: 4px dashed rgb(2, 197, 2);
  22. background-color: gray;
  23. }
  24. .normal {
  25. background-color: skyblue;
  26. }
  27. .atguigu1 {
  28. background-color: yellowgreen;
  29. }
  30. .atguigu2 {
  31. font-size: 30px;
  32. text-shadow: 2px 2px 10px red;
  33. }
  34. .atguigu3 {
  35. border-radius: 20px;
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div id="App">
  41. <!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
  42. <div class="basic" :class="mood" @click="changeMood">{{name}}</div> <br /><br />
  43. <!-- 绑定class样式--数组写法,适用于:要绑定的样式个数不确定、名字也不确定 -->
  44. <div class="basic" :class="classArr">{{name}}</div> <br /><br />
  45. <!-- 绑定class样式--对象写法,适用于:要绑定的样式个数确定、名字也确定,但要动态决定用不用 -->
  46. <div class="basic" :class="classObj">{{name}}</div> <br /><br />
  47. <!-- 绑定style样式--对象写法 -->
  48. <div class="basic" :style="styleObj">{{name}}</div> <br /><br />
  49. <!-- 绑定style样式--数组写法 -->
  50. <div class="basic" :style="styleArr">{{name}}</div>
  51. </div>
  52. <script type="text/javascript">
  53. Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
  54. //创建Vue实例
  55. new Vue({
  56. el: '#App',
  57. data: {
  58. value: "Vue",
  59. name: 'ZYZ',
  60. mood: 'normal',
  61. classArr: ['atguigu1', 'atguigu2', 'atguigu3'],
  62. classObj: {
  63. atguigu1: false,
  64. atguigu2: false,
  65. },
  66. styleObj: {
  67. fontSize: '40px',
  68. color: 'red',
  69. },
  70. classObj: {
  71. atguigu1: false,
  72. atguigu2: false,
  73. },
  74. styleObj2: {
  75. backgroundColor: 'orange'
  76. },
  77. styleArr: [
  78. {
  79. fontSize: '40px',
  80. color: 'blue',
  81. },
  82. {
  83. backgroundColor: 'gray'
  84. }
  85. ]
  86. },
  87. methods: {
  88. changeMood() {
  89. const arr = ['happy', 'sad', 'normal']
  90. const index = Math.floor(Math.random() * 3)
  91. this.mood = arr[index]
  92. }
  93. },
  94. })
  95. </script>
  96. </body>
  97. </html>

1.3 测试效果


2、条件渲染

2.1 基本知识

条件渲染:
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一定可以获取到。

2.2 代码实例

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <title>标题</title>
  6. <!-- 引入vue -->
  7. <script type="text/javascript" src="../js/vue.js"></script>
  8. </head>
  9. <body>
  10. <div id="App">
  11. <!-- 使用v-show做条件渲染 -->
  12. <h1 v-show="false">欢迎茶颜悦色的小主:{{name}}</h1>
  13. <h1 v-show="flag">欢迎茶颜悦色的小主(flag):{{name}}</h1>
  14. <h1 v-show="1 === 1">欢迎茶颜悦色的小主(表达式):{{name}}</h1>
  15. <!-- 使用v-if做条件渲染 -->
  16. <h2 v-if="false">欢迎来到{{name}}</h2>
  17. <h2 v-if="1 === 1">欢迎来到{{name}}</h2>
  18. <h2>当前的n值是:{{num}}</h2>
  19. <button @click="num++">点我n+1</button>
  20. <!-- v-else和v-else-if -->
  21. <div v-if="num === 1">Angular</div>
  22. <div v-else-if="num === 2">React</div>
  23. <div v-else-if="num === 3">Vue</div>
  24. <div v-else>哈哈</div>
  25. <!-- v-if与template的配合使用 -->
  26. <template v-if="num === 1">
  27. <h2>你好呀</h2>
  28. <h2>懒羊羊</h2>
  29. <h2>灰太狼</h2>
  30. </template>
  31. </div>
  32. <script type="text/javascript">
  33. Vue.config.productionTip = false //设置为 false 以阻止 vue 在启动时生成生产提示
  34. //创建Vue实例
  35. const vm = new Vue({
  36. el: '#App',
  37. data: {
  38. flag: true,
  39. value: "Vue",
  40. name: "zyz",
  41. num: 0
  42. }
  43. })
  44. </script>
  45. </body>
  46. </html>

2.3 测试效果


Vue学习之--------绑定样式、条件渲染、v-show和v-if的区别(2022/7/12)的更多相关文章

  1. vue.js选择if(条件渲染)详解

    vue.js选择if(条件渲染)详解 一.总结 一句话总结: v-if <!DOCTYPE html> <html lang="en"> <head& ...

  2. vue 自学笔记(4): 样式绑定与条件渲染

    一:对象绑定 Vue 对于页面的样式加载也有独特的方式,按照 Vue 提供的方式,我们可以轻松的控制它们的呈现. 假使我们要实现点击 div 变色 Vue 提供的样式方案的本质是对元素节点进行属性的绑 ...

  3. vue class与style绑定、条件渲染、列表渲染

    列表渲染 根据我例子的需要,先来说下,列表渲染使用到的是v-for指令,需要使用 item in items 形式的特殊语法,items 是源数据数组并且 item 是数组元素迭代的别名,具体使用方法 ...

  4. Vue学习之路6-条件渲染

    条件指令 所谓条件指令是指满足某个条件时执行哪部分代码,不满足条件时执行哪部分条件代码.vue条件指令有v-if,v-else-if,v-else三个,v-if条件渲染用来指示元素是否移除或者插入,根 ...

  5. vue中v-bind绑定样式

    近来发现v-bind绑定样式的两个好玩的栗子 可以直接绑定到一个样式对象,让模板更清晰: <div id="app"> <div v-bind:style=&qu ...

  6. Vue知识整理10:条件渲染(v-if v-show)

    在Vue中使用v-if等条件实现条件的判断来实现对象的显示. 也可以采用 v-show条件来实现对象的显示.

  7. Vue学习之--------Scoped样式(2022/8/1)

    1.场景 一个页面开发团队进行页面的开发设计.无可避免的会发生样式选择器命名的重复(id的重复.class的重复等).这样间接导致的后果就是.自己的页面样式好好的.在整合一起的时候.可能就会发生样式的 ...

  8. Vue语法学习第五课——条件渲染

    ① v-if .v-else-if .v-else <div v-if="type === 'A'"> A </div> <div v-else-if ...

  9. vue checkbox 双向绑定及初始化渲染

    双向绑定可以绑定到同一个数组 <input type="checkbox" id="jack" value="Jack" v-mode ...

随机推荐

  1. SAM复杂度证明

    关于$SAM$的复杂度证明(大部分是对博客的我自己的理解和看法) 这部分是我的回忆,可省略 先回忆一下$SAM$ 我所理解的$SAM$,首先扒一张图 初始串$aabbabd$ 首先发现,下图里的$S- ...

  2. Linux 基于源码安装 Redis

    1.下载 Redis: 前往 Redis 官网复制 Redis 相应版本的下载链接,到终端下载 2. 进入到指定目录, 下载 redis.tar.gz 包,运行 wget + 复制的下载链接  例如: ...

  3. HDU 5362 Just A String 指数型母函数

    题面 Description 用m种字母构造一个长度为n的字符串,如果一个字符串的字母重组后可以形成一个回文串则该串合法,问随机构成的长为n的字符串的合法子串数目期望值. Input 第一行一整数T表 ...

  4. 【Java】学习路径62-枚举类型

    public enum Role { TEACHER,STUDENT,CHEF } 使用: System.out.println(r1);//输出TEACHER System.out.println( ...

  5. 【Java】学习路径53-InetAdress获取服务器ip

    InetAdress如何使用? import java.net.*; public class InetAdress { public static void main(String[] args) ...

  6. K8S_三种Port区别总结

    nodePort: 外部流量访问K8S集群中Service入口的一种方式 比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePor ...

  7. 理解 Spring IoC 容器

    控制反转与大家熟知的依赖注入同理, 这是通过依赖注入对象的过程. 创建 Bean 后, 依赖的对象由控制反转容器通过构造参数 工厂方法参数或者属性注入. 创建过程相对于普通创建对象的过程是反向, 称之 ...

  8. python脚本将json文件生成C语言结构体

    1.引言 以前用过python脚本根据excel生成相关C语言代码,其实本质就是文件的读写,主要是逻辑问题,这次尝试将json文件生成C语言的结构体. 2.代码 这是一个json文件,生成这个结构体的 ...

  9. 华南理工大学 Python第3章课后小测-2

    1.(单选)给出如下代码 s = 'Hello scut' print(s[4::-1]) 上述代码的输出结果是(本题分数:2)A) HelloB) olleHC) scutD) tucs您的答案:B ...

  10. K8S Pod Pending 故障原因及解决方案

    文章转载自:https://mp.weixin.qq.com/s/SBpnxLfMq4Ubsvg5WH89lA