85.【Vue-细刷-01】(十)

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 85.【Vue-细刷-01】

(十三)、绑定样式

1.原生状态绑定样式

我们的class里面的类可以写多个,但是每一个都要进行空格处理

<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <div id="root">
        <!-- 
            1.我们原生情况下也可以绑定多个样式,即类可以设置多个 用空格进行隔开
         -->
        <h1 class="Jsxs classA classB classC">{{title}}1</h1>      
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>

2.class样式绑定 (字符串)

我们可以通过字符串的形式,进行绑定数据;

  • 适应于类名不确定,要动态进行获取。
<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <div id="root">
        <!-- 
            2.class的字符串写法,适应于类名不确定,要动态进行获取。
         -->
        <h1 class="Jsxs" :class="myStyle">{{title}}2</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>

3.class样式绑定 (类绑定:不加引号)

利用类进样式绑定,类的key值是一个字符串可以省略不写

  • 适应于: 类名确定(类名实际都是字符串’classB’==>可以简写为 classB),但不确定用不用.
  • {{}} 只解析表达式,将表达式转换成字符串。如果已经是字符串就不进行解析,原样输出。
<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <div id="root">
        <!-- 
            3.class的对象写法,适应于: 类名确定(类名实际都是字符串'classB'==>可以简写为 classB),但不确定用不用.
              为什么在这里会自动去找data区域找hasB,而不是找classB?
                    (1).因为找的是 变量 不是 字符串
         -->
        <h1 class="Jsxs" :class="{classB:hasB,classC:hasC}">{{title}}3</h1>      
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>

4.class样式绑定 (类绑定:加引号)

  • 可以不用添加引号数据
<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <div id="root">
        <!-- 
            4.class类名加上小括号
          -->
        <h1 class="Jsxs" :class="{'classB':hasB,'classC':hasC}">{{title}}4</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>

5.class样式绑定 (三元表达式)

适应于: 类名确定(类名实际都是字符串'classB'==>可以简写为 classB),但不确定用不用.

  • 这里面是否hasB被调用,假如说调用就使用classB,否则输出为空
<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <!-- 
        1.绑定class样式
            :class="xxx" xxx可以是字符串 对象 数组
        2.绑定style样式
            :style='{color: activeColor. fontSize: fontsize +'px'}'
                其中activeColor/fontSize 是data属性    
     -->
    <div id="root">
        <!-- 
            5.class三元表达式:   适应于: 类名确定(类名实际都是字符串'classB'==>可以简写为 classB),但不确定用不用 
                这里面是否hasB被调用,假如说调用就使用classB,否则输出为空
           -->
        <h1 class="Jsxs" :class="hasB ? 'classB' : '' ">{{title}}5</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>

6.数组绑定样式

数组里面的变量如果不加引号,就是表达式。如果加上引号就是字符串

  • 如果不添加引号,我们就要去寻找data区间
  • 如果添加引号,我们就不用解析表达式,直接原样输出
<!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="../js/vue.js"></script>
    <style>
        .Jsxs {
            /*  设置盒子模型 */
            border: 3px solid rgb(4, 3, 4);
        }
        .classA {
            /*  背景颜色 */
            background-color: blueviolet
        }
        .classB {
            /*  字体颜色 */
            color: rgb(233, 20, 20);
        }
        .classC {
            /*  字体阴影 */
            text-shadow: 2PX 2PX 3PX yellow;
        }
    </style>
</head>
<body>
    <!-- 
        1.绑定class样式
            :class="xxx" xxx可以是字符串 对象 数组
        2.绑定style样式
            :style='{color: activeColor. fontSize: fontsize +'px'}'
                其中activeColor/fontSize 是data属性    
     -->
    <div id="root">
        <!-- 
            6.class数组的写法,适应于: 同时应用多个class. 数组里面的是变量.
                (1).如果是变量,那么我们就需要仅data进行查找,然后帮助我们解析成字符串
                (2).如果自己是字符串,那么我们就不需要进行解析,直接返回字符串的信息
            -->
        <!-- <h1 class="Jsxs" :class="[classA,classB,classC]">{{title}}6</h1> -->
        <!-- 转变为字符串 -->
        <h1 class="Jsxs" :class="['classA','classB','classC']">{{title}}6</h1>
    </div>
    <script type="text/javascript">
        var vm = new Vue({
            el: '#root',
            data: {
                title: 'Hello, World!',
                myStyle: 'classA',
                hasB: true,   // 是否用B
                hasC: true,    // 是否用C
                size: 50
            }
        });
    </script>
</body>
</html>


相关文章
|
2天前
|
缓存 JavaScript 前端开发
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
11 3
|
5天前
|
JavaScript 前端开发 开发者
Vue v-for 进阶指南:in 与 of 的区别及应用场景 | 笔记
Vue.js 中的 v-for 是强大的遍历指令,但其中的 in 和 of 关键字往往被开发者忽视。尽管它们的用法相似,但适用的场景和数据结构却各有不同。本文将详细探讨 v-for 中 in 和 of 的区别、适用场景以及在实际开发中的最佳使用时机。通过理解它们的差异,你将能够编写更加高效、简洁的 Vue.js 代码,灵活应对各种数据结构的遍历需求。
40 6
|
2天前
|
缓存 JavaScript
Vue 中 computed 与 method 的区别
【10月更文挑战第15天】computed 和 method 是 Vue 中两个重要的选项,它们在功能和特点上存在着明显的区别。理解并合理运用它们的区别,可以帮助我们构建更高效、更具可维护性的 Vue 应用。在实际开发中,要根据具体情况灵活选择使用,以满足不同的需求。
5 2
|
2天前
|
JavaScript 搜索推荐 UED
vue的自定义指令
【10月更文挑战第14天】Vue 自定义指令为我们提供了一种强大的工具,使我们能够更灵活地控制和扩展 Vue 应用的行为。通过合理地使用自定义指令,可以提高开发效率,增强应用的功能和用户体验。
|
3天前
|
JavaScript
|
5天前
|
缓存 JavaScript 前端开发
Vue 中动态导入的注意事项
【10月更文挑战第12天】 在 Vue 项目中,动态导入是一种常用的按需加载模块的技术,可以提升应用性能和效率。本文详细探讨了动态导入的基本原理及注意事项,包括模块路径的正确性、依赖关系、加载时机、错误处理、缓存问题和兼容性等,并通过具体案例分析和解决方案,帮助开发者更好地应用动态导入技术。
|
5天前
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
【10月更文挑战第12天】 vue 批量自动引入并注册组件或路由等等
|
5天前
|
JavaScript 算法 前端开发
深入剖析Vue中v-for的使用及index作为key的弊端
深入剖析Vue中v-for的使用及index作为key的弊端
14 2
|
4天前
|
JavaScript UED
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
【10月更文挑战第5天】本示例展示了如何在 Vue.js 中使用 Element UI 组件实现动态添加和删除嵌套表单项。该表单包含设备信息、设备部位及其对应的任务列表,支持用户动态添加设备部位和任务,并提供相应的表单验证规则。
24 0
Vue + ElementUI 实现动态添加和删除表单项的多层嵌套表单
|
5天前
|
JavaScript
《进阶篇第9章》学习vuex知识点后练习:求和案例_纯vue版代码
《进阶篇第9章》学习vuex知识点后练习:求和案例_纯vue版代码
11 1