Vue 中指令v-bind动态绑定及与v-for结合使用详解

 更新时间:2022年09月21日 15:50:52   作者:小余努力搬砖  
这篇文章主要为大家介绍了Vue 中指令v-bind动态绑定及与v-for结合使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言:

在昨天的文章中已经基本介绍了,v-bind的基本使用,可以参考学习,本文是更加具体的解释v-bind的使用,和v-for结合的使用。

一、 v-bind动态绑定class

1. v-bind动态绑定class(对象语法)

这里举简单例子来体现绑定效果,设置一个按钮可以控制对象里面元素的颜色,这时候对象就要绑定动态事件,才能实现变化。

有两种绑定的方法

一种直接在h5中直接绑定颜色变化,另一种是调用函数的方式绑定,需要注意,直接写就不需要this,但是在调用函数里面需要使用this才能实现。其中还要注意,变色的条件是自己设置了一个为false点击后取反出现,然后再取反,就会出现变色不变色的样式。

代码如下:

  <style>
    .active{
      color:red;
    }
  </style>
</head>
<body>
  <div id="app">
    <h3 class="title" :class="{active:isActive}">{{message}}</h3>
    <h3 class="title" :class="getClasses()">{{message}}</h3>
    <button @click="change">点击变色</button>
  </div>
  <script src="vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"你好啊",
        active:"active",
        isActive:false
      },
      methods: {
        change(){
          this.isActive = !this.isActive
        },
        getClasses(){
          return {active:this.isActive}
        }
      },
    })
  </script>

2. v-bind动态绑定class(数组用法)

class属性中可以放数组,会依次解析成对应的class。

  • ​ 加上单引号的表示字符串
  • ​ 不加的会当成变量
  • ​ 可以直接使用方法返回数组对象
 <div id="app">
    <!-- 加上单引号当成字符串 -->
    <h3 class="title" :class="['active','line']">{{message}}</h3>
    <!-- 不加会被当成变量 -->
    <h3 class="title" :class="[active,line]">{{message}}</h3>
    <h3 class="title" :class="getClasses()">{{message} {{getClasses()[1]}}</h3>
  </div>
  <script src="vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"你好啊",
        active:"aaaa",
        line:'bbbb'
      },
      methods: {
        getClasses(){
          return [this.active,this.line]
        }
      },
    })
  </script>

3.v-bind动态绑定style(对象语法)

<!-- <h3 :style="{key(属性名):value(属性值)}">{{message}}</h3> -->
<!-- 加单引号,当成字符串解析 -->
<h3 :style="{fontSize:'50px'}">{{message}}</h3>
<!-- 不加单引号,变量解析 -->
<h3 :style="{fontSize:fontSize}">{{message}}</h3>
<h3 :style="getClasses()">{{message}}</h3>
  </div>
  <script src="vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data(){
       return{ message:"你好啊",
        fontSize:50+'px'
     }  
    },
      methods: {
        getClasses(){
         return {fontSize:this.fontSize}
        }
      },
    })
  </script>

4.v-bind动态绑定style(数组语法)

  <div id="app">
    <h3 :style="[baseStyle]">{{message}}</h3>
    <h3 :style="getStyle()">{{message}}</h3>
  </div>
  <script src="vue.js"></script>
  <script>
    const app = new Vue({
      el:"#app",
      data:{
        message:"你好啊",
        baseStyle:{backgroundColor:'red'}
      },
      methods: {
        getStyle(){
          return [this.baseStyle]
        }
      },
    })
  </script>

二、v-bind和v-for的结合使用

实现了,点击字体会出现变色,前提是需要先通过v-for把数组内的内容全部都遍历出来,在通过绑定事件,来实现颜色的切换,其中需要注意,自己设置了一个当前的索引,通这个索引来判断当前的情况,从而发生颜色的变化,实现所需的结果。

<style>
        .active{
            color: red;
        }
    </style>
</head>
<body>
    <div id="app">
        <ul>
            <li :class="currentIndex==index?'active':''" @click="change(index)" v-for="(item,index) in list">{{index}}--{{item}}</li>
        </ul>
    </div>
    <script src="./vue.js"></script>
    <script>
        let vm = new Vue({
            el:'#app',
            data(){
                return {
                    currentIndex:0,
                    list:["小明","小红","小张","小李"],
                }
            },
            methods:{
                change(index){
                    this.currentIndex=index
                }
            }
        })
    </script>

以上就是Vue 中指令v-bind动态绑定及与v-for结合使用详解的详细内容,更多关于Vue 指令v-bind结合v-for的资料请关注脚本之家其它相关文章!

相关文章

  • vue实现发表评论功能

    vue实现发表评论功能

    这篇文章主要为大家详细介绍了vue实现发表评论功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 如何通过URL来实现在Vue中存储业务状态实用技巧

    如何通过URL来实现在Vue中存储业务状态实用技巧

    这篇文章主要为大家介绍了如何通过URL来实现在Vue中存储业务状态实用技巧,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 详解vuejs2.0 select 动态绑定下拉框支持多选

    详解vuejs2.0 select 动态绑定下拉框支持多选

    这篇文章主要介绍了vuejs2.0 select动态绑定下拉框 ,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 详解vue开发中调用微信jssdk的问题

    详解vue开发中调用微信jssdk的问题

    这篇文章主要介绍了vue开发中调用微信jssdk的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • vue.js数据绑定操作详解

    vue.js数据绑定操作详解

    这篇文章主要介绍了vue.js数据绑定操作,结合实例形式详细分析了vue.js数据绑定的各种常见操作技巧与相关注意事项,需要的朋友可以参考下
    2018-04-04
  • Vue Router 实现登录后跳转到之前想要访问的页面

    Vue Router 实现登录后跳转到之前想要访问的页面

    这篇文章主要介绍了Vue Router 实现登录后跳转到之前相要访问的页面,本文仅演示路由跳转和导航守卫相关代码的实现,不包含具体的权限验证和登录请求,需要的朋友可以参考下
    2022-12-12
  • vue+elementUi图片上传组件使用详解

    vue+elementUi图片上传组件使用详解

    这篇文章主要为大家详细介绍了vue+elementUi图片上传组件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • Vue keep-alive的实现原理分析

    Vue keep-alive的实现原理分析

    这篇文章主要介绍了Vue keep-alive的实现原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 浅谈Vue响应式(数组变异方法)

    浅谈Vue响应式(数组变异方法)

    这篇文章主要介绍了浅谈Vue响应式(数组变异方法),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • vue实现excel文件导入导出操作示例

    vue实现excel文件导入导出操作示例

    这篇文章主要为大家介绍了vue实现excel文件的导入导出实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07

最新评论