vue如何动态绑定class?方法介绍

vue如何动态绑定class?方法介绍

Vue.js 的核心是一个响应的数据绑定系统,它允许我们在普通 HTML 模板中使用特殊的语法将 DOM “绑定”到底层数据。

被绑定的DOM 将与数据保持同步,每当数据有改动,相应的DOM视图也会更新。基于这种特性,通过vue.js动态绑定class就变得非常简单。

1. 数据绑定

vue 指令以 v- 前缀标示,数据绑定的指令 v-bind:属性名, 简写为 :属性名, 简单的数据绑定例子如下:

立即学习“前端免费学习笔记(深入)”;

博客园首页

登录后复制

2. 动态绑定class

vue 的分隔符默认是 {{ }}, 在分隔符里面的字符串会被认为是数据变量,可以通过 class=”{{ className }}” 方式设置class,但是vue不推荐这种方式与 v-bind:class 的方式混用,二者只能选其一。

v-bind:class 虽然与class属性里绑定变量的方式不能共存,却可以与原生的class特性共存, 一个DOM标签中允许同时出现原生class和v-bind:class。

2.1 v-bind:class 支持string类型,不建议这样使用,因为string值是固定不变的,无法实现动态改变class的需求

HTML代码:
Demo1
渲染后的HTML:

登录后复制

2.2 v-bind:class 支持数据变量,当变量值改变时,将同时更新class。v-bind:class指令的值限定为绑定表达式,如javascript表达式

HTML代码:

Demo2

登录后复制登录后复制

Javascript代码:

data: {  classA: 'class-a'  //当classA改变时将更新class}

登录后复制

渲染后的HTML:

Demo2

登录后复制登录后复制

写在指令中的值会被视作表达式,如javascript表达式,因此v-bind:class接受三目运算:

HTML代码:

Demo3

登录后复制登录后复制

渲染后的HTML:

Demo3

登录后复制登录后复制

2.3 v-bind:class 支持对象,对象改变时会动态更新class

HTML代码:

Demo4

登录后复制登录后复制

Javascript代码:

data: {  isA: false,  //当isA改变时,将更新class  isB: true    //当isB改变时,将更新class}

登录后复制

渲染后的HTML:

Demo4

登录后复制登录后复制

HTML代码:

Demo5

登录后复制

Javascript代码:

data: {  objectClass: {    class-a: true,    class-b: false  }}

登录后复制

渲染后的HTML:

Demo5

登录后复制

2.4: v-bind:class支持数组, 数组里的变量改变时,会动态更新class列表

HTML代码:

Demo6

登录后复制登录后复制

Javascript代码:

data: {  classA: 'class-a',  classB: 'class-b'}

登录后复制

渲染后的HTML:

Demo6

登录后复制登录后复制

数组中可以包含object类型,数组中的object对象改变,也会更新class列表

HTML代码:

Demo7

登录后复制登录后复制

Javascript代码:

data: {  classA: 'class-a',  objectClass: {    classB: 'class-b',  // classB 的值为class-b, 则将classB的值添加到class列表    classC: false,    // classC值为false,将不添加classC    classD: true    // classD 值为true,classC将被直接添加到class列表}}

登录后复制

渲染后的HTML:

Demo7

登录后复制登录后复制

相关推荐:2020年前端vue面试题大汇总(附答案)vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程教学!!

以上就是vue如何动态绑定class?方法介绍的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3023005.html

(0)
上一篇 2025年3月13日 06:01:53
下一篇 2025年3月13日 06:01:59

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈vue中axios的封装

    下面vue.js教程栏目带大家了解一下vue中axios的封装。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 vue中axios的封装 第一步还是先下载axios cnpm install axios -S 登录后复制 …

    2025年3月13日
    000
  • 详解Vue中动态添加类名的方法

    能够向组件添加动态类名是非常强大的功能。它使我们可以更轻松地编写自定义主题,根据组件的状态添加类,还可以编写依赖于样式的组件的不同变体。 添加动态类名与在组件中添加 prop :class=”classname”一样…

    2025年3月13日
    200
  • vue中递归组件的实现方法介绍(附实例:三级菜单)

    下面vue.js教程栏目通过实例制作一个三级菜单,来介绍vue中递归组件的实现方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 js里面有递归算法,同时,我们也可以利用props来实现vue模板的递归调用,但是前提是组…

    2025年3月13日
    200
  • vue中路由之间如何通讯?方法介绍

    下面vue.js教程栏目给大家介绍一下vue中向路由组件传递props的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 父子间的组件通讯是通过props和$emit来实现的,那么路由之间的通讯呢,往下看: 我现在再w…

    2025年3月13日 编程技术
    200
  • vue+webpack2实现路由懒加载的方法介绍

    下面vue.js教程栏目给大家介绍一下vue+webpack2实现路由的懒加载的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 当打包构建应用时,Javascript 包会变得非常大,影响页面加载。如果我们能把不同路…

    2025年3月13日
    200
  • vue2.0子组件中怎么改变父组件中的值 ?

    下面vue.js教程栏目给大家介绍一下vue2.0中子组件通过v-modal改变父组件中值的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 vue2.0中子组件通过v-modal改变父组件中的值 父组件代码:   p…

    2025年3月13日
    200
  • vue watch用法是什么

    vue watch用法是:1、当fullName值变化时,watch监听到并且执行;2、watch执行handler方法和immediate属性;3、使用deep属性,深度监听,常用语对象下面属性的改变。 【相关文章推荐:vue.js】 v…

    2025年3月13日
    200
  • vuex有什么用?

    vuex是基于vue框架的一个状态管理库,可以管理复杂应用的数据状态,可以方便的实现组件之间的数据共享,例兄弟组件的通信、多层嵌套的组件的传值等等;它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。…

    2025年3月13日
    200
  • vue怎么请求后端数据

    vue请求后端数据的方法:首先在api文件夹下,建立接口js文件;然后确定baseURL和url后缀;最后输入需要获取数据的代码即可。 本教程操作环境:windows10系统、vue2.9,本文适用于所有品牌的电脑。 【相关文章推荐:vue…

    2025年3月13日
    200
  • 什么是Vue CLI

    Vue CLI是指vue脚手架,它是一个专门为单页面应用快速搭建繁杂的脚手架,它可以轻松的创建新的应用程序,而且可用于自动生成vue和webpack的项目模板。 推荐:《vue.js教程》 VUE-CLI 脚手架 什么是vue-cli vu…

    2025年3月13日
    200

发表回复

登录后才能评论