精华内容
下载资源
问答
  • 今天小编就为大家分享一篇对Vue- 动态元素属性及v-bindv-model的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了利用Vue的v-for和v-bind实现列表颜色切换,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇解决v-for中使用v-if或者v-bind:class失效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了vue指令之表单控件绑定v-model v-model与v-bind结合使用,需要的朋友可以参考下
  • Vue.js的指令是以v-开头的,它们作用于HTML元素,指令提供了一些特殊的特性。这篇文章主要介绍了Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on 的相关知识,需要的朋友可以参考下
  • 本篇文章主要介绍了详解VUE中v-bind的基本用法 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • v-bind的基本用法 一、本节说明 前面的章节我们学习了如何向页面html标签进行插值操作,那么如果我们想动态改变html标签的属性,该怎么办呢? 这就是我们这节开始要讲的内容v-bind. 二、 怎么做 “:”为v-bind的...
  • 主要介绍了vue基础之v-bind属性、class和style用法,结合实例形式分析了vue.js中v-bind绑定及class、style样式控制相关操作技巧,需要的朋友可以参考下
  • 一、v-bind 先来一个常见场景: 在vue里定义了个名为mytitle的属性 var vm=new Vue({ el:#app, data:{ mytitle:This is a title! }, }) 此时 如果 是不行的 此时 只会将mytitle当作普通字符串 并不会去vue...
  • 今天小编就为大家分享一篇vue里面v-bind和Props 利用props绑定动态数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇在vue中v-bind使用三目运算符绑定class的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 今天小编就为大家分享一篇对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • v-model 指令在表单控件元素上创建双向数据绑定,所谓双向绑定。这篇文章主要介绍了Vue.js中v-bind v-model的使用和区别,需要的朋友可以参考下
  • 今天小编就为大家分享一篇Vue条件循环判断+计算属性+绑定样式v-bind的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要介绍了vue.js学习笔记之v-bindv-on解析,v-bind 指令用于响应地更新 HTML 特征,v-on 指令用于监听DOM事件,文中还给大家提到了v-bind,v-on的缩写,感兴趣的朋友参考下吧
  • 主要介绍了vue中v-bind:style效果的自定义指令,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 主要介绍了vue学习笔记之指令v-text && v-html && v-bind详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 在标签上绑定属性值,不可以用Mustache语法,也就是{{ }},必须使用v-bind来绑定属性,v-bind的格式是 v-bind:标签属性名 或者语法糖形式 :标签属性名 代码中展示了 v-bind:src 、v-bind:href 、v-bind:class —对于...

    码云实时更新学习demo地址:https://gitee.com/dxl96/vuexuexi

    VUE基础篇(插值操作)

    1、v-bind

    在标签上绑定属性值,不可以用Mustache语法,也就是{{ }},必须使用v-bind来绑定属性,v-bind的格式是 v-bind:标签属性名
    或者语法糖形式 :标签属性名
    代码中展示了 v-bind:srcv-bind:hrefv-bind:class
    —对于 v-bind:src 、v-bind:href来说 可以绑定data中的变量,也可以绑定方法,方法返回的值就是绑定的值
    —对于 v-bind:class 来说:
    1)可以绑定对象,可以绑定对象的形式,{属性1:boolean,属性2:boolean …}这种形式,我们通过动态绑定这些布尔值,如果布尔值是true的话,说明就会绑定到这个对象的属性名,如果是false的话就不会绑定这个对象的属性名。
    举例:比如这里,{active: isActive,line: isLine} 假设active的值(isActive)是true,那么class这个标签属性就有active这个值,也就是class=“active”;假设 active的值和line的值都为true,那么就是class=“active line”;如果其中active的值为true,line的值为false,那么class=“active”
    2)还可以写成绑定数组的形式,这种形式[‘active’,‘line’]
    3)还可以绑定方法,方法返回对象或者数组,也就是上两种形式的数据

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>vue动态绑定</title>
      <style>
        img {
          height: 60px;
        }
    
        .active {
          color: red;
        }
      </style>
    </head>
    <body>
    
    <div id="app">
      <!--  ■错误写法,不能再标签上使用mustache语法,不能够识别-->
      <!--  <img src="{{imgURL}}">-->
    
      <!--  ■正确做法,使用v-bind指令,来进行值的动态绑定,也就是值的替换-->
      <img v-bind:src="imgURL"/>
      <a v-bind:href="aHref">百度一下</a>
      <!--  ■也可以绑定方法,方法返回一个需要的值-->
      <img v-bind:src="getImgUrl()"/>
      <a v-bind:href="getHref()">百度一下</a>
    
      <!--  ■v-bind指令语法糖的写法,用 : 替代 v-bind: -->
      <img :src="imgURL"/>
      <a :href="aHref">百度一下</a>
    
      <!------------------------------------------------------------------------------------------------------------------------------->
    
    
      <!--  ■绑定数据可以和原标签属性值共存,vue会解析合并绑定的值和原来的值,假如原标签的属性值只能是一个,比如href这种,要是绑定语法和原语法都存在,则原标签生效-->
      
      <!--  ■v-bind:class绑定可以绑定对象的形式,{属性1:boolean,属性2:boolean ...}这种形式,我们通过动态绑定这些布尔值,如果布尔值是true的话,说明就会绑定到这个对象的属性名,
              如果是false的话就不会绑定这个对象的属性名
              举例:比如这里,{active: isActive,line: isLine} 假设active的值(isActive)是true,那么class这个标签属性就有active这个值,也就是class=“active”;假设
              active的值和line的值都为true,那么就是class=“active line”;如果其中active的值为true,line的值为false,那么class=“active”
      -->
      <h2 v-bind:class="{active: isActive,line: isLine}">{{message}}</h2>
    
      <!--  ■将上面这种直接绑定对象的方式,还可以改成绑定方法,方法中返回这个对象即可-->
      <h2 v-bind:class="getClass()">{{message}}</h2>
    
      <!--  ■还可以写成绑定数组的形式,同样的,也可以像上面绑定方法,方法返回数组-->
      <!--  绑定数据和原来的属性数据可以同时使用,它会将绑定的和原来的进行解析合并,比如这里,就会是class=“title active line”-->
      <h2 class="title" v-bind:class="['active','line']">{{message}}</h2>
    
      <!--  ■将上面这种直接绑定数组的方式,还可以改成绑定方法,方法中返回这个数组即可-->
      <h2 class="title" v-bind:class="getClass2()">{{message}}</h2>
      
      <!--  ■监听点击事件-->
      <button v-on:click="btnClick">点击一下</button>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "vue app",
          imgURL: "https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1590919517&di=f0e49723a8334e9576244d9736cf81a5&src=http://a3.att.hudong.com/14/75/01300000164186121366756803686.jpg",
          aHref: "http://www.baidu.com",
          isActive: true,
          isLine: true
        },
        methods: {
          btnClick: function () {
            // 当点按钮时切换isActive的值取反,也就是true和false交替赋值
            // 当该值改变时,也就意味着上面绑定了这个值的h2标签的class属性交替存在去除active这个值
            // 因为上面css已经对class含有active的标签进行设置字体颜色为红色,所以我们在点击按钮时就能够看到h2标签里的内容红色和黑色之间交替变换
            this.isActive = !this.isActive
          },
          getClass: function () {
            return {active: this.isActive, line: this.isLine};
          },
          getClass2:function(){
            return ['active','line']
          },
          getHref: function () {
            return "http://www.baidu.com"
          },
          getImgUrl: function () {
            return "https://ss0.bdstatic.com/94oJfD_bAAcT8t7mm9GUKT-xh_/timg?image&quality=100&size=b4000_4000&sec=1590919517&di=f0e49723a8334e9576244d9736cf81a5&src=http://a3.att.hudong.com/14/75/01300000164186121366756803686.jpg"
          }
        }
      });
    </script>
    </body>
    </html>
    

    效果
    在这里插入图片描述

    2、动态绑定style

    v-bind:style 或者 语法糖形式 :style
    可以绑定数据的方式有:
    1)对象
    2)数组
    3)方法(方法返回对象或者数组)

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>动态绑定style</title>
    </head>
    <body>
    
    <div id="app">
    
      <!--  ■v-bind:style 绑定style ,以绑定对象的形式进行绑定 {key(属性名):value(属性值)} 属性名的形式可以是小驼峰的形式,也可以是原名称以-分割的形式-->
      <h2 :style="{fontSize:finalSize,color:color}">{{message}}</h2>
      <!--  ■如果是直接进行赋值的话,必须以单引号包裹起来,否则它会认为这是个变量去解析,然后就会找不到这个变量,就像这里的 50px 用单引号包裹表示他是一个值-->
      <h2 :style="{fontSize:'50px'}">{{message}}</h2>
      <h2 :style="{fontSize:finalNum+'px',backgroundColor:'red'}">{{message}}</h2>
      <!--  ■也可以调用方法的方式返回对象的形式进行绑定-->
      <h2 :style="getStyle()">{{message}}</h2>
      <!--  ■也可以是数组的形式来进行数据绑定-->
      <h2 :style="[backGround,fontSize]">{{message}}</h2>
      <!--  ■也可以调用方法的方式返回数组的形式进行绑定-->
      <h2 :style="getStyle2()">{{message}}</h2>
    </div>
    
    <script src="../js/vue.js"></script>
    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "vue app",
          finalSize: "50px",
          finalNum: 50,
          color: 'red',
          backGround: {backgroundColor: "red"},
          fontSize: {fontSize: "50px"},
        },
        methods: {
          getStyle: function () {
            return {fontSize: this.finalSize}
          },
          getStyle2: function () {
            return [{backgroundColor: "red"},{fontSize: "50px"}]
          }
        }
      });
    </script>
    </body>
    </html>
    

    效果
    在这里插入图片描述

    展开全文
  • v-bind 主要用于属性绑定,比方你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定.这篇文章主要介绍了VueJs中的V-bind指令,需要的朋友可以参考下
  • 本篇文章主要介绍了关于vue.js v-bind 的一些理解和思考,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 下面我们使用Vue的v-bind绑定class v-bind动态绑定class 对象语法绑定(常用) red和size的值为true就在class显示red和size,false就不显示。下面有两种写法: <style> .red{ color: red; } .size{ font...
  • 主要介绍了Nuxt v-bind绑定img src不显示的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 今天小编就为大家分享一篇在vue中使用v-bind:class的选项卡方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • v-bindv-bind:name 的区别

    千次阅读 2019-08-23 12:02:46
    v-bind 不能多个同用, 后面的才生效 v-bind=“obj” 传入的是键值对 v-bind:name=“value” 传入的是值 v-on 是类似的 v-on 不能多个同用, 后面的才生效 v-on=“obj” 传入的是键值对 v-on:name=“value” 传入的是...

    v-bind 不能多个同用, 后面的才生效
    v-bind=“obj” 传入的是键值对
    v-bind:name=“value” 传入的是值

    传入键值对时, 子组件可以用 props 继承指定数据
    子组件中, $props 取到所有继承数据的集合; $attrs 则取到所有未继承数据的集合
    $attrs + $props = v-bind 传入的数据


    v-on 是类似的
    v-on 不能多个同用, 后面的才生效
    v-on=“obj” 传入的是键值对
    v-on:name=“value” 传入的是值

    <!DOCTYPE html>
    <html>
    
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    		<meta charset="utf-8">
    		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    		<title>v-bind 与 v-bind:name 的区别</title>
    		<style>
    			.components {
    				border: 1px solid #000;
    				padding: 30px;
    			}
    		</style>
    	</head>
    
    	<body>
    		<div id="swq">
    			<box></box>
    		</div>
    		<script type="text/x-template" id="box-template">
    			<div class="components">
    				<div>cBobj{{cBobj}}</div>
    				<div>cBobj2{{cBobj2}}</div>
    				<c-a v-bind="cBobj"></c-a>
    				<c-a v-bind="cBobj" v-bind="cBobj2"></c-a>
    				<c-b v-on="cBfun"></c-b>
    				<c-b v-on="cBfun" v-on="cBfun2"></c-b>
    			</div>
    		</script>
    		<script type="text/x-template" id="cA-template">
    			<div class="components">
    				<div>$attrs{{$attrs}}</div>
    				<div>$props{{$props}}</div>
    			</div>
    		</script>
    		<script type="text/x-template" id="cB-template">
    			<div class="components">
    				<div>查看console.log()</div>
    			</div>
    		</script>
    
    		<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
    		<script type="text/javascript">
    			var cA = {
    				template: "#cA-template",
    				props: ["b1"],
    			};
    			var cB = {
    				template: "#cB-template",
    				mounted() {
    					this.$emit("fun1");
    				},
    			};
    			var box = {
    				template: "#box-template",
    				data() {
    					var _this = this
    					return {
    						cBobj: {
    							b1: 1,
    							b2: 1,
    							b3: 1,
    							b4: 1,
    						},
    						cBobj2: {
    							b1: 2,
    							b2: 2,
    							b3: 2,
    							b4: 2,
    						},
    						cBfun: {
    							fun1() {
    								console.log("fun1")
    							},
    							fun2() {
    								console.log("fun2")
    							},
    						},
    						cBfun2: {
    							fun1() {
    								console.log("fun21")
    							},
    							fun2() {
    								console.log("fun22")
    							},
    						},
    					}
    				},
    				components: {
    					"c-a": cA,
    					"c-b": cB,
    				},
    			};
    			var vu = new Vue({
    				el: "#swq",
    				components: {
    					box: box
    				},
    			})
    		</script>
    	</body>
    
    </html>
    

    end

    展开全文
  • 文章目录前言一、v-bind="props"、vbind="props"、v-bind="props"、vbind="attrs"、v-on="listeners"是什么?1. v-bind="$props" 和 $props2.v-bind="$attrs" 和 $attrs3.v-on="listeners"二、代码演示1.index...


    前言

    浏览掘金的时候,偶然看到一篇文章提到了v-bind="props"和v-bind="attrs"这些知识点,因为之前没有接触过,所以查阅了相关资料,进行了一些学习,以下是我自己的一些理解


    一、v-bind=“ p r o p s " 、 v − b i n d = " props"、v-bind=" props"vbind="attrs”、v-on="listeners"是什么?

    1. v-bind="$props" 和 $props

    v-bind="$props":

    可以将自身接收到的所有props传递给它的子组件,子组件需要在其props:{} 中定义要接受的参数名。

    $props:

    当前组件接收到的 props 对象。可以通过 v-bind=" p r o p s " 传 入 内 部 组 件 , 也 可 以 通 过 v m . props" 传入内部组件,也可以通过vm. props"vm.props[name]的形式去获取。

    2.v-bind="$attrs" 和 $attrs

    v-bind="$attrs":

    可以将自身接收到的所有非props的特性(class和style除外)传递给它的子组件。(子组件添加inheritAttrs: false,避免父作用域的不被认作props的特性绑定应用在子组件的根元素上)
    注:inheritAttrs: false 属性解释
    有关该属性的解释在我的另一篇文章中有所解释:https://blog.csdn.net/qq_44747461/article/details/108811180

    $attrs:

    包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind=" a t t r s " 传 入 内 部 组 件 , 也 可 以 通 过 v m . attrs" 传入内部组件,也可以通过vm. attrs"vm.attrs[name]的形式获取。

    3.v-on=“listeners”

    v-on=“listeners”:

    可以将父组件绑定的事件传递给子组件,子组件可以通过this.$emit(eventName)触发父组件绑定的事件

    vm.$listeners

    包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。

    二、代码演示

    1.index页面

    <template>
      <div>
        <h1>$props / $attrs / $listeners</h1>
        <my-parent
          sex="male"
          :name="name"
          :age="age"
          v-on:printName="printName"
          @printAge="printAge"
        ></my-parent>
      </div>
    </template>
    <script>
    import myParent from "./components/parent.vue";
    export default {
      name: "",
      components: { myParent },
      data() {
        return {
          name: "xxx",
          age: "18",
        };
      },
      methods: {
        printName(from,value) {
            console.log('打印姓名 ' + from + " " +value)
        },
        printAge(from,value) {
            console.log('打印年龄 ' + from + " " +value)
        },
      },
    };
    </script>
    

    2.父组件页面

    <template>
      <div class="parent">
        <h2>父组件</h2>
        <p>$props:组件上绑定的props属性:{{ $props }}</p>
        <my-child1 v-bind="$props" v-on="$listeners"></my-child1>
        <p>$attrs:组件上绑定的非props属性:{{ $attrs }}</p>
        <my-child2 v-bind="$attrs" v-on="$listeners"></my-child2>
      </div>
    </template>
    <script>
    import myChild1 from "./child1";
    import myChild2 from "./child2";
    export default {
      name: "",
      components: { myChild1, myChild2 },
      props: ["name", "age"],
      //或者采取拓展运算符(...)的形式
      //此种方式可以避免代码冗余,不需要列举所有的props特性,也避免忘记修改增加props特性时同步更新此处的内容
      props:{
      	...myChild1.props;
      }
      mounted() {
        console.log(this.$listeners);
        this.$emit("printName", "父组件", this.$props["name"]);
        this.$emit("printAge", "父组件", this.$props["age"]);
      },
      data() {
        return {};
      },
      inheritAttrs:false
    };
    </script>
    <style scoped lang='less'>
    </style>
    

    3.子组件1页面

    <template>
      <div>
        <h3>子组件1 接收$props</h3>
        <p>父组件传递过来的姓名:{{name}}</p>
        <p>父组件传递过来的年龄:{{age}}</p>
      </div>
    </template>
    <script>
    export default {
      name:'',
      props:['name','age'],
      mounted(){
        this.$emit('printName','子组件1',this.name + this.age);
      },
      data(){
        return {
           
        }
      }
    }
    </script>
    <style scoped lang='less'>
    </style>
    

    4.子组件2页面

    <template>
      <div>
        <h3>子组件2 接收$attrs</h3>
        <p>父组件传递过来的性别:{{ $attrs["sex"] }}</p>
        <p></p>
      </div>
    </template>
    <script>
    export default {
      name: "",
      mounted() {
        this.$emit("printName",'子组件2',this.$attrs['sex']);
      },
      data() {
        return {};
      },
    };
    </script>
    <style scoped lang='less'>
    </style>
    

    三:效果图

    1.DOM结构展示

    DOM结构图

    2.浏览器页面展示图

    页面展示图

    3.控制台打印

    控制台输出

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 204,426
精华内容 81,770
关键字:

v-bind