Vue3学习笔记(9.1)

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:0
                    isActive: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>

 

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

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

相关文章

打气球游戏-第14届蓝桥杯STEMA测评Scratch真题精选

[导读]&#xff1a;超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成&#xff0c;后续会不定期解读蓝桥杯真题&#xff0c;这是Scratch蓝桥杯真题解析第118讲。 蓝桥杯选拔赛现已更名为STEMA&#xff0c;即STEM 能力测试&#xff0c;是蓝桥杯大赛组委会与美国普林斯顿多…

Java包装类

包装类1. 包装类&#xff08;Wrapper&#xff09;1.1 基本数据类型和包装类之间的转换1.2 String类和包装类&#xff08;基本数据类型&#xff09;之间的转换2. 面试题3.包装类练习1. 包装类&#xff08;Wrapper&#xff09; 继承于java.lang.Number类&#xff1b;实现了java.…

java校园行为分析预警管理系统

目 录 摘 要 II ABSTRACT III 第一章 绪论 1 1.1研究背景 1 1.2选题目的 1 1.3本文研究内容 2 第二章 开发技术介绍 3 2.1开发工具介绍 3 2.2 JAVA技术介绍 3 2.3 MYSQL数据库介绍 4 第三章 系统需求分析 6 3.1可行性分析 6 3.1.1技术…

python之lambdas函数(lambda表达式)

python之lambdas函数&#xff08;lambda表达式&#xff09; lambda函数&#xff0c;也称为lambda表达式。 lambda函数&#xff08;或lambda表达式&#xff09;的语法&#xff1a; lambda arguments: expression 创建一个返回表达式值的匿名函数。其中&#xff1a; lambda 是…

Power Apps从入门到放弃教程

Power Apps从入门到放弃教程前言啥是Power apps文档资料官方文档官方公式文档官方控件文档案例实操添加数据源用户登录登录成功,跳转主界面添加组件提示语言流前言 Hello&#xff01;欢迎各位,当你选择阅读这篇文章时&#xff0c;相信你最近也在学习Power apps&#xff0c;并且…

Debian 达梦数据库 disql工具输入命令 左右移动光标乱码

Debian 达梦数据库 disql工具输入命令 左右移动光标乱码1、下载安装包rlwrap-0.46.12、编译安装rlwrap-0.46.12.1、安装依赖包2.2、编译安装2.3、安装成功3、设置rlwrap系统环境变量4、配置达梦护数据库用户环境变量5、测试效果1、下载安装包rlwrap-0.46.1 https://github.com…

K8s (一) --------- K8s 概述

目录一、kubernetes 基本介绍二、kubernetes 功能和架构1. 概述2. K8s 功能:3. 应用部署架构分类4. K8s 集群架构5. K8s 集群架构节点角色功能一、kubernetes 基本介绍 kubernetes&#xff0c;简称 K8s&#xff0c;是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的&…

【数据结构】二叉树<遍历>

【二叉树遍历】|-前序-中序-后序-层序-|<二叉树的遍历>1.前序遍历【递归】2.中序遍历【递归】3.后序遍历【递归】4.层序遍历【非递归】4.1判断是否是完全二叉树<二叉树的遍历> 在学习二叉树遍历之前我们先了解下二叉树的概念。 二叉树是&#xff1a; 1.空树 2.非空…

最新 MySQL 8.0.32 在Win10安装部署(详细)

一、前言 MySQL官方Windows版下载地址&#xff1a;https://dev.mysql.com/downloads/installer/   本教程详细指导如何在Win10系统下安装部署最新版MySQL-8.0.32。   【MySQL系列安装部署教程】 Docker安装最新版MySQL5.7&#xff08;mysql-5.7.40&#xff09;教程&…

漫画党的福利——将图片转换成漫画风格 API,附超多免费可用API 推荐(四)

前言 今天来和大家聊聊一件非常有趣的事情——将图片转换成漫画风格的 API&#xff01;如果你是一个漫画党&#xff0c;相信这个话题一定会让你感到兴奋。通过这个 API&#xff0c;你可以将你的照片变成漫画风格&#xff0c;让它们变得更加有趣和艺术&#xff01; 我们先来看…

24《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》中文分享

​《Protein Actions Principles and Modeling》-《蛋白质作用原理和建模》 本人能力有限&#xff0c;如果错误欢迎批评指正。 第六章&#xff1a;The principles of protein folding kinetics &#xff08;蛋白质折叠动力学的原理&#xff09; -Levinthal悖论促进蛋白质折…

pyecharts实现电影数据分析可视化

根据电影数据&#xff0c;使用pyecharts进行可视化分析。 数据介绍 import pandas as pd datapd.read_csv(./电影.csv) data.head()前5行数据如下: 需要安装的python库 pip install pandas pip install pyecharts文章目录数据介绍数据清洗数据可视化上映年份及电影数量导演…

python 数据、曲线平滑处理——基于Numpy.convolve实现滑动平均滤波——详解

文章目录1 基于Numpy.convolve实现滑动平均滤波1.1 滑动平均概念1.2 滑动平均的数学原理1.3 语法1.4 滑动平均滤波示例2 曲线平滑处理——Savitzky-Golay 滤波器——详解3 基于Numpy.convolve实现滑动平均滤波——详解1 基于Numpy.convolve实现滑动平均滤波 1.1 滑动平均概念 …

linux 配置java环境

1、上传jdk包到/usr/local/java目录下 2、解压jdk的tar包 tar -zxvf jdk-8u291-linux-x64.tar.gz 3、添加配置&#xff08;环境变量&#xff09; 注意&#xff1a;JAVA_HOME值为实际jdk路径 打开配置文件 vi /etc/profile 最下面添加: #set java environment JAVA_HOME/usr/…

基于集成学习的用户流失预测并利用shap进行特征解释

基于集成学习的用户流失预测并利用shap进行特征解释 小P&#xff1a;小H&#xff0c;如果我只想尽可能的提高准确率&#xff0c;有什么好的办法吗&#xff1f; 小H&#xff1a;优化数据、调参侠、集成学习都可以啊 小P&#xff1a;什么是集成学习啊&#xff0c;听起来就很厉害的…

SSM—【笔记】1.2 SpringMVC

SpringMVC:用于表现层开发&#xff0c;同Servlet功能等同&#xff0c;但比Servlet技术使用更加简便&#xff0c;可以用更少代码量完成开发 项目结构&#xff1a; 后端采用的是三层架构模式&#xff1a; 数据层&#xff1a;先学的JDBC技术&#xff0c;后用MyBatis框架取代 表…

ThreeJS-缩放、旋转(四)

代码&#xff1a; <template> <div id"three_div"> </div> </template> <script> import * as THREE from "three"; import {OrbitControls } from three/examples/jsm/controls/OrbitControls export default { name: &quo…

在华为做了三年软件测试被裁了,我该怎么办

近年来&#xff0c;随着经济环境的变化和企业战略的调整&#xff0c;员工被裁员的情况变得越来越普遍。无论是因为企业经营困难还是因为业务调整&#xff0c;员工们都可能面临被裁员的风险。如果你也遇到了这样的情况&#xff0c;那么你应该怎么办呢&#xff1f; 首先&#xf…

centos7 SystemV 开机自启动脚本配置方法 redis集群三主三从

centos7 SystemV 开机自启动脚本配置方法 redis集群三主三从1、安装redis集群2、编写redis启动脚本2.1、建立启动脚本2.2、复制多份redis启动脚本给集群使用2.3、添加可执行权限3、配置开机自启动1、安装redis集群 参考: redis三主三从集群安装 2、编写redis启动脚本 2.1、建…

RabbitMQ 07 发布订阅模式

发布订阅模式 发布订阅模式结构图&#xff1a; 比如信用卡还款日临近了&#xff0c;那么就会给手机、邮箱发送消息&#xff0c;提示需要去还款了&#xff0c;但是手机短信和邮件发送并不一定是同一个业务提供的&#xff0c;但是现在又希望能够都去执行&#xff0c;就可以用到发…