Vue3学习笔记(9.1)

news/2025/1/17 7:43:58/

Vue.js style(内联样式)

我们可以在v-bind:style直接设置样式,可以简写:style

<!--* @Author: RealRoad1083425287@qq.com* @Date: 2023-04-02 19:41:53* @LastEditors: Mei* @LastEditTime: 2023-04-03 15:41:44* @FilePath: \vscode\Vue3_listen.html* @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!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 src="vue_doc/vue.global3.js"></script><style>.static{width: 100px;height:100px;background:purple}.active{/* width:100px;height:100px; */background:blue;}.text_danger{background: red;}</style></head>
<body><div id="app"><div :style="{color:activeColor,fontSize:fontSize+'px'}" >基尼太美</div></div><!-- <p id="info"></p> --><script>const app={data(){return{// counter:1// kilometers:0,// meters:0isActive:true,hasError:true,error:null,activeClass:'active',errorClass:'text_danger',activeColor:'red',fontSize:30}}// computed:{//     classObject(){//         return{//             active:this.isActive && !this.error,//             'text-danger':this.error&&this.error.type==='fatal'//         }//     }// }}Vue.createApp(app).mount('#app')// vm.$watch('kilometers',function(a,b){//     document.getElementById("info").innerHTML='数字变化,修改前的值是:'+b+'修改后的值是'+a+'!!!!!!'// })</script>
</body>
</html>

 也可以直接绑定到一个样式对象

<!--* @Author: RealRoad1083425287@qq.com* @Date: 2023-04-02 19:41:53* @LastEditors: Mei* @LastEditTime: 2023-04-03 15:45:53* @FilePath: \vscode\Vue3_listen.html* @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!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 src="vue_doc/vue.global3.js"></script><style>.static{width: 100px;height:100px;background:purple}.active{/* width:100px;height:100px; */background:blue;}.text_danger{background: red;}</style></head>
<body><div id="app"><div :style="styleObject" >基尼太美</div></div><!-- <p id="info"></p> --><script>const app={data(){return{// counter:1// kilometers:0,// meters:0// isActive:true,// hasError:true,// error:null,activeClass:'active',errorClass:'text_danger',styleObject:{color:'purple',fontSize:"30px",}}}// computed:{//     classObject(){//         return{//             active:this.isActive && !this.error,//             'text-danger':this.error&&this.error.type==='fatal'//         }//     }// }}Vue.createApp(app).mount('#app')// vm.$watch('kilometers',function(a,b){//     document.getElementById("info").innerHTML='数字变化,修改前的值是:'+b+'修改后的值是'+a+'!!!!!!'// })</script>
</body>
</html>

 v-bind:style可以使用数组将多个样式对象应用到一个元素上:
 

<!--* @Author: RealRoad1083425287@qq.com* @Date: 2023-04-02 19:41:53* @LastEditors: Mei* @LastEditTime: 2023-04-03 15:49:52* @FilePath: \vscode\Vue3_listen.html* @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!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 src="vue_doc/vue.global3.js"></script><style>.static{width: 100px;height:100px;background:purple}.active{/* width:100px;height:100px; */background:blue;}.text_danger{background: red;}</style></head>
<body><div id="app"><div :style="[styleObject,secondStyle]" >基尼太美</div></div><!-- <p id="info"></p> --><script>const app={data(){return{// counter:1// kilometers:0,// meters:0// isActive:true,// hasError:true,// error:null,activeClass:'active',errorClass:'text_danger',styleObject:{color:'purple',fontSize:"30px",},secondStyle:{'font-weight':'bold'}}}// computed:{//     classObject(){//         return{//             active:this.isActive && !this.error,//             'text-danger':this.error&&this.error.type==='fatal'//         }//     }// }}Vue.createApp(app).mount('#app')// vm.$watch('kilometers',function(a,b){//     document.getElementById("info").innerHTML='数字变化,修改前的值是:'+b+'修改后的值是'+a+'!!!!!!'// })</script>
</body>
</html>

这样,基尼太美就加粗了。

 注意:当v-bind:style使用需要特定前缀的CSS属性时,如transform,Vue.js会自动侦测并添加相应的前缀。

多重值

可以为style绑定中的property提供一个包含多个值的数组,常用于提供多个带前缀的值,例如:

<div :style="{display:['-webkit-box','-ms-flexbox','flex']}"></div>

这样写只会渲染数组中最后一个被浏览器支持的值。如果浏览器支持不带浏览器前缀的flexbox,那么就只会渲染display:flex。

组件上使用class属性

当我们在带有单个根元素的自定义组件上使用class属性,这些class将被添加到该元素中。此元素上的现有class将不会被覆盖。

<!--* @Author: RealRoad1083425287@qq.com* @Date: 2023-04-02 19:41:53* @LastEditors: Mei* @LastEditTime: 2023-04-03 16:04:54* @FilePath: \vscode\Vue3_listen.html* @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!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 src="vue_doc/vue.global3.js"></script><style>.static{width: 100px;height:100px;background:purple}.active{/* width:100px;height:100px; */background:blue;}.text_danger{background: red;}</style></head>
<body><div id="app"><!-- <div :style="[styleObject,secondStyle]" >基尼太美</div> --><mez class="classC classD"></mez></div><!-- <p id="info"></p> --><script>const app=Vue.createApp({})app.component('mez',{template:'<h1 class="classA classB">Let is lie</h1>'})app.mount('#app')// vm.$watch('kilometers',function(a,b){//     document.getElementById("info").innerHTML='数字变化,修改前的值是:'+b+'修改后的值是'+a+'!!!!!!'// })</script>
</body>
</html>

 对于带数据绑定class也同样适用:

<my-component :class="{active:isActive}"></my-component>

当isActive为TRUE时,HTML将被渲染成为:

<p class="active">Hi</p>

如果你的组件有多个根元素,你需要定义哪部分将接收这个类。可以使用$attrs组件属性执行此操作:

<!--* @Author: RealRoad1083425287@qq.com* @Date: 2023-04-02 19:41:53* @LastEditors: Mei* @LastEditTime: 2023-04-04 08:54:29* @FilePath: \vscode\Vue3_listen.html* @Description: * * Copyright (c) 2023 by ${git_name_email}, All Rights Reserved. 
-->
<!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 src="vue_doc/vue.global3.js"></script><style>.static{width: 100px;height:100px;background:purple}.active{/* width:100px;height:100px; */background:blue;}.text_danger{background: red;}.classA{color:coral;font-size: 30px;}.classB{color:rgb(255, 80, 235);font-size: 30px;}</style></head>
<body><div id="app"><!-- <div :style="[styleObject,secondStyle]" >基尼太美</div> --><mez class="classA"></mez></div><!-- <p id="info"></p> --><script>const app=Vue.createApp({})app.component('mez',{template:`<h1 :class="$attrs.class">Let is lie</h1><span>这是一个子组件</span>`})app.mount('#app')// vm.$watch('kilometers',function(a,b){//     document.getElementById("info").innerHTML='数字变化,修改前的值是:'+b+'修改后的值是'+a+'!!!!!!'// })</script>
</body>
</html>

 


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

相关文章

React中setState/useState的使用

一、React如何使用setState/useState的最新的值 一般是可以正常的把最新的值&#xff0c;传递给所需要的函数中的&#xff0c;但是有些情况&#xff0c;需要使用最新数据的函数&#xff0c;不可改动&#xff0c;甚至所需要使用的地方并不是一个函数&#xff0c;那我们如何获取s…

《Effective Objective-C 2.0 》 阅读笔记 item8

第8条&#xff1a;理解“对象等同性”这一概念 1. 对象等同性 “”操作比较的是两个指针本身&#xff0c;而不是其所指的对象。 应该使用NSObject协议中声明的“isEqual:”方法来判断两个对象的等同性。其中&#xff0c;某些对象提供了特殊的“等同性判定方法”&#xff0c;如…

网易二面:MongoDB索引底层使用的是什么数据结构?

文章目录 mongoDB存储引擎对B-tree 的误解开始B 树的单条记录查询性能真的好于 B+ 树吗?B+ 树的优势为mongoDB存储引擎 mongoDB使用的存储引擎有: 1、WiredTiger存储引擎是mongodb3.2的默认存储引擎; 2、MMAPv1是mongodb基于内存映射最初的存储引擎; 3、In-Memory是一种…

【分布式】java实现分布式事务的五种方案

文章目录背景什么是分布式事务什么是分布式系统&#xff1a;什么是事务&#xff1a;什么是本地事务&#xff1a;什么是分布式事务&#xff1a;分布式事务有哪些应用场景&#xff1a;如何进行分布式事务控制CAP理论分布式系统如何兼顾CAP&#xff1f;CAP有哪些组合方式&#xff…

todo-list遇到的问题

vue事件修饰符 .stop event.stopPropagation() .prevent event.preventDefault()mysql默认字符集是 latin&#xff0c;&#xff0c;在插入中文的时候会报错, # docker中编辑mysql配置文件# docker进入容器docker exec -it mymysql /bin/bash # 安装vim yum update yum …

C++ - 继承 | 菱形继承

之前的文章中我们简要的讲述了C中继承部分的知识&#xff0c;但是还没有完全的讲完&#xff0c;在本文中将会讲到菱形继承的问题。 复杂的菱形继承 单继承&#xff1a;一个子类只有一个直接父类时称这个继承关系为单继承。 多继承&#xff1a;一个子类有两个或以上直接父类时…

函数设计—参数规则

【规则1-1】参数的书写要完整&#xff0c;不要贪图省事只写参数的类型而省略参数名字。 如果函数没有参数&#xff0c;则用 void 填充。 例如&#xff1a; void SetValue(int width, int height); // 良好的风格 void SetValue(int, int); // 不良的风格 float GetValue(…

Android 9.0系统源码_窗口管理(三)WindowManagerService对窗口的管理过程

前言 上一篇我们具体分析了WindowManager的addView方法添加窗口的过程&#xff0c;我们知道WindowManager最终会调用到WindowManagerService的addWindow方法。本篇文章我们将在此基础上&#xff0c;具体来分析WindowManagerService的addWindow方法添加窗口的过程。这个方法的代…