Vue中使用 class 类样式的方法详情

在vue中为我们提供了 几种方式来使用class类的样式

1. 布尔值

我们先正常在 style 标签中 书写一个类名为 active的样式

<style>
        .active{
            color: red;
            font-size: 20px;
            font-style: normal;
        }
    </style>

在我们的 script 标签中创建一个 vm 实例,在实例的 data 数据中心写上 isActive:true

true 表示使用此样式,false 则表示不使用

<script src="js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data:{
                isActive:true
             }
       </script>

此时我们在 标签中 已v-bind指令 使用class

<div id="app">
        <h1 :class="{active:isActive}">我是使用布尔值引用class样式</h1>
    </div>

查看输出结果:

现在我们将true 改为 false:

data:{
   isActive: false
}

查看输出结果:

2.表达式

我们可以在 v-bind: 指令后添加表达式,当满足该条件时,调用该 class

举例,我们在数据中心 data 中有一个对象数组,把他渲染到视图层上,我想让 索引为 偶数的引用

class 类样式:

<body>

    <div id="app">
        <ul>
            <li v-for="(item,index) in list">{
<!-- -->{index}}----{
<!-- -->{item.name}}</li>
        </ul>
    </div>
    <script src="js/vue.js"></script>
    <script>
        let vm = new Vue({
            el:"#app",
            data:{
                list:[
                    {id:1,name:"金克斯"},
                    {id:2,name:"杰斯"},
                    {id:3,name:"凯特琳"},
                    {id:4,name:"蔚"},
                ]
            }
        })
    </script>

在 li 中使用属性绑定class类样式:

<li v-for="(item,index) in list" :class="{active: index%2 == 0}">
        {
<!-- -->{index}}----{
<!-- -->{item.name}}
</li>

输出结果为:

我们也可以在数据中心 定义 一个 mark,通过定义 mark 的值来做到让某一行 单独引用 class类

<li v-for="(item,index) in list" :class="{active: index === mark}">
        {
<!-- -->{index}}----{
<!-- -->{item.name}}
</li>
let vm = new Vue({
            el:"#app",
            data:{
                list:[
                    {id:1,name:"金克斯"},
                    {id:2,name:"杰斯"},
                    {id:3,name:"凯特琳"},
                    {id:4,name:"蔚"},
                ],
                mark:0
            }
        })

此时只有索引为 0 的 引用了样式,即第一个:

3.多类封装

多个类,可以直接封装到对象中,在视图层直接调用对象名即可!

多个类,可以将其放置在对象中,在视图层就是一个对象名称,在数据中心data中是一个对象,对象中罗列出多个类

<style>
        .f50{
            font-size: 50px;
        }
        .blue{
            color: blue;
        }
        .background{
            background-color: black;
        }
    </style>
<body>

   <div id="app">
         <p :class="classObject">中国人</p>
    </div>
</body>
let vm = new Vue({
            el:"#app",
            data:{
                classObject:{
                    "f50":true,
                    "blue":true,
                    "background":true
                }
            }
        })

输出结果为:

也可以在自定义计算属性,封装在函数中,在返回调用

let vm = new Vue({
            el:"#app",
            computed:{
         // 1. 自定义的计算属性名,
         // 2.计算属性做的事情,我们将其封装到函数中
                myclass(){
                    return {
                        "f50":true,
                        "blue":true,
                        "background":true
                    }
                }
            }
        })
<p :class="myclass">中国人</p>

输出结果一致

4.可以直接在 v-bind:中使用数组形式使用class类

.f50{
            font-size: 50px;
        }
        .blue{
            color: blue;
        }
        .background{
            background-color: black;
        }
<!-- 注意,class 名要加引号 -->
        <p :class="['f50','blue','background']">一周又一周</p>

输出结果:

到此这篇关于Vue中使用 class 类样式的方法详情的文章就介绍到这了,更多相关Vue中使用 class 类样式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vue中动态添加class类名的方法

    vue 动态添加class类名,灵活得让你发狂,下面示例几个 <template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1'

  • Vue中使用 class 类样式的方法详情

    在vue中为我们提供了 几种方式来使用class类的样式 1. 布尔值 我们先正常在 style 标签中 书写一个类名为 active的样式 <style> .active{ color: red; font-size: 20px; font-style: normal; } </style> 在我们的 script 标签中创建一个 vm 实例,在实例的 data 数据中心写上 isActive:true , true 表示使用此样式,false 则表示不使用 <script

  • vue中常见的问题及解决方法总结(推荐)

    有一些问题不限于 Vue,还适应于其他类型的 SPA 项目. 1. 页面权限控制和登陆验证页面权限控制 页面权限控制是什么意思呢? 就是一个网站有不同的角色,比如管理员和普通用户,要求不同的角色能访问的页面是不一样的.如果一个页面,有角色越权访问,这时就得做出限制了. 一种方法是通过动态添加路由和菜单来做控制,不能访问的页面不添加到路由表里,这是其中一种办法.具体细节请看下一节的<动态菜单>. 另一种办法就是所有的页面都在路由表里,只是在访问的时候要判断一下角色权限.如果有权限就允许访问,没有

  • 浅谈vue中改elementUI默认样式引发的static与assets的区别

    首先从这说起 vue项目中的elementUI的默认样式怎么改 由于elementUI的样式太单调,比如这个slider滑块 elementUI中的API是没办法改变这个slider的颜色的,可是老板喜欢很黄,非要用yellow色.

  • vue实现条件判断动态绑定样式的方法

    在我们做前端页面的时候,为了美观和直观,我们希望通过条件判断来让页面显示不同的样式,如下图所示: 当值为"是"时,显示绿色的标签,当值为"否"时,显示为灰色的标签. 标签的样式分别为: <el-tag type="success">绿色标签</el-tag> <el-tag type="info">灰色标签</el-tag> 关键在于type的样式部分,我们利用vue的样式绑定,

  • vue 中Virtual Dom被创建的方法

    本文将通过解读render函数的源码,来分析vue中的vNode是如何创建的.在vue2.x的版本中,无论是直接书写render函数,还是使用template或el属性,或是使用.vue单文件的形式,最终都需要编译成render函数进行vnode的创建,最终再渲染成真实的DOM. 如果对vue源码的目录还不是很了解,推荐先阅读下 深入vue -- 源码目录和编译过程. 01  render函数 render方法定义在文件 src/core/instance/render.js 中 Vue.pro

  • 在Vue中使用icon 字体图标的方法

    1.使用线上的阿里iconfont图标库 1.打开 iconFont官网 选择自己喜欢的图标,并且添加购物车 2.点击购物车,添加至项目 3 生成链接 4在我们的vue项目中,找到index.html文件,引入css样式,记住这里要放上你的链接地址 5接下来我们就可以在任何组件地方使用我们的图标了,我这里就是用上面生成的三个图标其中的一个. 2但是考虑网络及用户体验 阿里iconfont下载本地使用 1 阿里iconfont图标直接下载到本地 2 在assets文件下创建iconfont文件夹

  • Vue中实现回车键切换焦点的方法

    几乎在所有浏览器中,都具有 Tab 键切换焦点的功能. 但是任性的用户强烈要求一定要有 Enter 键切换焦点的功能. 为了交付上线拿到钱,我们只好再一次毫无原则性的接受了客户的需求. 在上一代人中,大多都有这种操作习惯.习惯把保存成为编辑,习惯用回车替换 Tab.这是受到微软 excel 荼毒的结果. 起初我以为这个功能很简单,无非就是把 Enter 键的功能转接到 Tab 键上面,分分钟就可以解决掉的问题. 可困难马上就出现了,我发现这条路是走不通的. 我们经常可以主动触发某个事件,比如 e

  • 详解Vue中的MVVM原理和实现方法

    下面由我阿巴阿巴的详细走一遍Vue中MVVM原理的实现,这篇文章大家可以学习到: 1.Vue数据双向绑定核心代码模块以及实现原理 2.订阅者-发布者模式是如何做到让数据驱动视图.视图驱动数据再驱动视图 3.如何对元素节点上的指令进行解析并且关联订阅者实现视图更新 一.思路整理 实现的流程图: 我们要实现一个类MVVM简单版本的Vue框架,就需要实现一下几点: 1.实现一个数据监听Observer,对数据对象的所有属性进行监听,数据发生变化可以获取到最新值通知订阅者. 2.实现一个解析器Compi

  • Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模块.如下: def createInstance(module_name, class_name, *args, **kwargs): module_meta = __import__(module_name, globals(), locals(), [class_name]) class_met

  • vue中实现在外部调用methods的方法(推荐)

    1.首先定义一个公共的vue组件: var eventHub = new Vue(); 2.在事件当前的组件中,在created中,用$on向公共的组件eventHub传递,translate是自定义的,getCardNum(data)是要在外部调用的方法; eventHub.$on('translate', function (data) { that.getCardNum(data); }); 3.最后在父组件中,注意负组件要用一个变量保存,var vm = new Vue({}): 4.在

随机推荐