【Vue 快速入门系列】样式绑定与条件渲染

news/2024/5/19 2:26:50/文章来源:https://blog.csdn.net/apple_51931783/article/details/127234435

文章目录

    • 前言
    • 样式绑定
    • 条件渲染

前言

在vue中好像一切数据都是可以动态的,那么我们应如何让dom元素中的样式动起来呢?我们既然可以改变dom元素的样式,我们能不能将其隐藏起来呢?今天将会介绍到Vue中如何将属性与dom元素的样式进行绑定,如何控制一个dom元素的显示与隐藏。

样式绑定

1. class样式写法:class="xxx" xxx可以是字符串、对象、数组。(具体的用法在代码中可以看到)字符串写法适用于:类名不确定,要动态获取。对象写法适用于:要绑定多个样式,个数不确定,名字也不确定。数组写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。
2. style样式:style="{fontSize: xxx}"其中xxx是动态值。:style="[a,b]"其中a、b是样式对象。

在这里插入图片描述

<!DOCTYPE html>
<html><head><meta charset="UTF-8" /><title>绑定样式</title><style>.basic{width: 400px;height: 100px;border: 1px solid black;}.happy{border: 4px 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: gray;}.normal{background-color: skyblue;}.atguigu1tag{background-color: yellowgreen;}.atguigu2tag{font-size: 30px;text-shadow:2px 2px 10px red;}.atguigu3tag{border-radius: 20px;}</style><script type="text/javascript" src="../js/vue.js"></script></head><body><!-- 准备好一个容器--><div id="root"><h3>绑定class样式--字符串写法,适用于:要绑定的样式名字不确定需要动态指定</h3><div class="basic" :class="tag" @click="alertClass">我的名字叫:{{name}}</div><hr><h3>绑定class样式--数组写法,适用于:要绑定的样式个数不确定、名字也不确定</h3><!-- 这种情况下可以对数组进行增删改查,以达到相应的效果 --><div class="basic" :class="classArr">{{name}}</div><hr><h3>绑定class样式--对象写法,适用于:要绑定的样式个数确定、名字也确定,但要动态决定用不用</h3><div class="basic" :class="claAlert">我的名字叫:{{name}}<br><br><br><button @click="normal">原样式</button><button @click="atguigu1">加入样式1</button><button @click="atguigu2">加入样式2</button><button @click="atguigu3">加入样式3</button></div><hr><h3>绑定style样式--对象写法</h3><div class="basic" :style="styObj">我的名字叫:{{name}}</div><hr><h3>绑定style样式--数组写法</h3><div class="basic" :style="styArr">我的名字叫:{{name}}</div></div></body><script type="text/javascript">Vue.config.productionTip = falseconst vm = new Vue({el:'#root',data:{name:'张三',tag:"normal",classArr:["happy","sad","normal"],claAlert:{atguigu1tag:false,atguigu2tag:false,atguigu3tag:false},styObj:{backgroundColor:"blue"},styArr:[{backgroundColor:"blue"},{fontSize:"40px"}]},methods: {alertClass(){i=Math.floor(Math.random()*3)this.tag=this.classArr[i]},normal(){this.claAlert.atguigu1tag=falsethis.claAlert.atguigu2tag=falsethis.claAlert.atguigu3tag=false},atguigu1(){console.log(this.claAlert.atguigu1tag)this.claAlert.atguigu1tag=!this.claAlert.atguigu1tag},atguigu2(){this.claAlert.atguigu2tag=!this.claAlert.atguigu2tag},atguigu3(){this.claAlert.atguigu3tag=!this.claAlert.atguigu3tag}},})</script></html>

条件渲染

条件渲染分为以下两种:


 v-if:写法:v-if="表达式"v-else-if="表达式"v-else="表达式"适用场景:切换频率较低的场景特点:不进行元素隐藏,直接移除掉注意:该写法结构在使用的时候与其他语言中的使用方法一样,中间不可以被打断

 v-show:写法:v-show="表达式"适用于:切换频率较高的场景特点:将不展示的dom元素直接隐藏掉并没有移除使用v-if的时候元素可能没办法获取到,而使用v-show一定可以将元素获取到

条件改变前

在这里插入图片描述

条件改变后

在这里插入图片描述
代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script type="text/javascript" src="../js/vue.js"></script>
</head>
<body><div id="demo"> <h1>条件渲染操作样例</h1><h2>目前n的值为{{n}}</h2><button @click="n++">点击我n++</button><!-- 使用v-show进行标签的筛选 --><hr><div v-show="n===1">Hello现在n的值为{{n}},我出现了!</div><div v-show="n===2">Hello现在n的值为{{n}},我出现了!</div><div v-show="n===3">Hello现在n的值为{{n}},我出现了!</div><!-- 使用v-if进行隐藏 --><!-- 此时在dom中并不会显示v-if标签中的内容 --><h2 v-if="n===1">Hello现在n的值为{{n}},我出现了!</h2><h2 v-if="n===3">Hello现在n的值为{{n}},我出现了!</h2><h2 v-if="n===2">Hello现在n的值为{{n}},我出现了!</h2><!-- 整个v-if分支 --><h2 v-if="n===1">Hello现在n的值为{{n}},我出现了!</h2><h2 v-else-if="n===2">Hello现在n的值为{{n}},我出现了!</h2><h2 v-else-if="n===3">Hello现在n的值为{{n}},我出现了!</h2><!-- 最后else时不管你设置没有设置条件语句都将执行 --><h2 v-else="n===2">Hello大家好,我将在n为1、2或者3的时候下线</h2><hr><!-- 配合v-if实现对一个模块的隐藏 --><template v-if="n!=5"><div><h2>我的名字是:{{name}}</h2></div><div><h2>我今年:{{age}}岁了</h2></div><div><h2>我就读的学校是:{{school}}</h2></div></template></div>
</body>
<script>let vm=new Vue({el:"#demo",data:{n:0,name:"小朱",age:20,school:"南阳理工学院"}})</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_24617.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java List 扩容机制探究(ArrayList 、Vector、LinkedList)

文章目录List扩容ArrayList 扩容机制结论&#xff1a;无参构造创建的ArrayList的初始空间为0&#xff0c;在添加第一个元素的时候空间会默认为10&#xff0c;之后扩容会为当前容量的1.5倍。0->10->15->22->33->49源码分析1.ArrayList list new ArrayList();2. …

Android多媒体架构

Android多媒体架构 要实现我们的媒体播放器 主要使用的就是android media MediaPlayer 这样的一个类 来为我们的播放器的实现提供一个主要功能 而这个类的实现又依赖于 JNI层的 1)一些接口 2)Libmedia.so 库 (这个库才是 mediaplayer类的真正实现) 再往下就是我们的se…

产品能力|书山有路-趣味算法(第二版)读书笔记part1

系列文章目录 趣味算法&#xff08;第二版&#xff09;读书笔记&#xff1a; day1: 序章|学习的方法和目标. day2:算法之美|打开算法之门与算法复杂性 day3.算法之美|函数特性与图形 day4.数学之美|斐波那契数列 后续补充完善 提示&#xff1a;写完文章后&#xff0c;目录可以…

Kubernetes_16_静态Pod网关apiserver的audit审计日志

系列文章目录 文章目录系列文章目录前言一、理论&#xff1a;kube-apiserver的审计日志1.1 kube-apiserver.yaml 文件的五行修改1.2 audit-policy.yaml文件的修改二、实践&#xff1a;编写策略文件&#xff0c;打印想要的审计日志2.1 步骤1&#xff1a;编写修改policy.yaml文件…

05_排序与分页

1.排序数据 1.1排序规则 如果没有使用排序操作&#xff0c;默认情况下查询返回的数据是按照添加数据的顺序显示的。 使用ORDER BY子句排序 ASC (ascend):升序 DESC (descend):降序 ORDER BY子句在SELECT语句的结尾。 1.2单列排序 1.简单使用排序 #如果没有使用排序操作&am…

每日算法、面试题

目录 2022/10/16 一、算法 翻转字符串里的单词 找出字符串中第一个匹配项的下标 二、面试题 SpringMvc中如何解决POST请求的中文乱码问题 SpringMvc的工作流程 2022/10/16 一、算法 翻转字符串里的单词 给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 …

【Nginx】三、Nginx实现四层负载均衡Nginx实现限流防盗链流量镜像

Nginx实现四层负载均衡一、Nginx实现四层负载均衡1、四层负载均衡与七层负载均衡区别2、Nginx四层负载均衡配置3、SocketTool工具4、TCP&UDPDebug工具二、Nginx实现限流三、Nginx实现防盗链四、Nginx流量镜像一、Nginx实现四层负载均衡 我们之前介绍的HTTP负载均衡&#x…

Silane-PEG-Alkyne,硅烷-聚乙二醇-炔基用于修饰蛋白类

An English name&#xff1a;Silane-PEG-Alkyne Chinese name&#xff1a;硅烷-聚乙二醇-炔基 Item no&#xff1a;X-GF-0314-10k CAS&#xff1a;N/A Formula&#xff1a;N/A MW&#xff1a;Silane-PEG-Alkyne5000、Silane-PEG-Alkyne3400、Silane-PEG-Alkyne2000、硅烷-…

【附源码】计算机毕业设计SSM美食菜谱网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

(附源码)计算机毕业设计SSM基于JAVA线上订餐系统

&#xff08;附源码&#xff09;计算机毕业设计SSM基于JAVA线上订餐系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

【Vue Router】

资料 官网&#xff1a;https://v3.router.vuejs.org/zh/guide/ 尚硅谷视频&#xff1a;https://www.bilibili.com/video/BV1Zy4y1K7SH?p118 基本使用 安装&#xff1a; 这里安装vue3.x vue 2.x 版本对应 vue-router 3.xvue 3.x 版本对应 vue-router 4.x其他以此类推 npm…

【数据结构】------ 堆

目录 堆的概念及结构 堆的实现 堆向上调整算法 堆向下调整算法 堆的创建 堆的初始化和销毁 堆的插入 堆的删除 获取堆顶的数据 获取堆的数据个数 堆的判空 TopK问题&#xff08;在N个数找出最大&#xff08;小&#xff09;的前K个&#xff09; 堆排序 堆的概念及…

自学Python第二十七天- 简单部署生产环境,docker 的使用

自学Python第二十七天- 部署极简生产环境Windows 环境部署创建绿色 python 环境Linux 环境部署创建 Linux 环境使用Hyper-V使用 VMware 部署使用 docker 部署docker 原理安装 docker使用 linux 系统使用包管理工具使用 docker 仓库使用源代码安装使用 windows 系统开启 docker …

寻路算法-从bfs到Astart

一、简单BFS算法 bfs即广度优先搜索&#xff0c;最基础的寻路算法 即向出发点向四周无目的扩散&#xff0c;知道到达终点或者无法扩散为止 # coding: utf-8import random import bisectclass Solution(object):def __init__(self, n, m, bad):self.map [[0, 0, 0, 0, 0, 0, …

1.4. PUBLIC KEYS AS IDENTITIES公钥及身份 1.5. TWO SIMPLE CRYPTOCURRENCIES两种简单加密货币

《BITCOIN AND CRYPTOCURRENCY TECHNOLOGIES》Chapter 1系列 1.4. PUBLIC KEYS AS IDENTITIES 公钥作为身份 从一个签名方案中提取一个公钥将之视为一个身份。 公钥 public key 可以代表私钥 private key 的公众身份&#xff0c;而 private key 则是此人身份真实的内涵。 随时…

Linux服务搭建 -- NTP服务

什么是NTP&#xff1f; NTP全名“Network TimeProtocol”&#xff0c;即网络时间协议&#xff0c;是由RFC 1305定义的时间同步协议&#xff0c;用来在分布式时间服务器和客户端之间进行时间同步。 NTP基于UDP报文进行传输&#xff0c;使用的UDP端口号为123。使用NTP的目的是对网…

QFramework v1.0 使用指南 工具篇:03. CodeGenKit 脚本生成

在这一篇&#xff0c;我们学习几乎每个项目都要用到并且从中受益的功能&#xff1a;自动生成脚本并绑定&#xff0c;简称脚本生成。 基本使用 我们先在场景中&#xff0c;随便创建一些有父子结构的 GameObject&#xff0c;如下所示&#xff1a; 接着给 Player 挂上 ViewContr…

Spring 更简单的读取和存储对象

在 Spring 中想要更简单的存储和读取对象的核心是使用注解. 1.存储 Bean 对象 1.1 前置⼯作&#xff1a;配置扫描路径&#xff08;重要&#xff09; 注意&#xff1a;想要将对象成功的存储到 Spring 中&#xff0c;我们需要配置⼀下存储对象的扫描包路径&#xff0c;只有被配…

基于hadoop平台hive数据库处理电影数据

目录 1 开发背景 3 1.1开发背景与意义 4 1.2 开发环境与工具 4 2 可行性分析 7 2.1 可行性分析 8 2.2 需求可行性 8 2.3 技术可行性 8 2.4 操作可行性 8 2.5经济可行性 9 3 系统总体设计 10 3.1 总体设计方案 10 3.2 基础数据准备 10 3.3 环境准备 13 3.4 软件准备 13 4 系统详…

【文件操作详解】—— 一篇文章带你学会C语言的文件操作

文章目录1. 为什么要使用文件2. 什么是文件2.1 程序文件2.2 数据文件2.3 文件名3. 文件的打开和关闭3.1 文件指针3.2 如何打开和关闭文件3.2.1. 打开文件&#xff1a;fopen3.2.2 关闭文件&#xff1a;fclose3.2.3 补充4. 文件的顺序读写4.1 fputc4.2 fgetc4.3 fputs4.4 fgets4.…