阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Vue.js v-bind

      v-bind

      • 缩写:

      • 预期any (with argument) | Object (without argument)

      • 参数attrOrProp (optional)

      用法

      • 动态地绑定一个或多个特性,或一个组件 prop 到表达式。

      • 在绑定 classstyle 特性时,支持其它类型的值,如数组或对象。

      • 在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。

      • 没有参数时,可以绑定到一个包含键值对的对象。注意此时 classstyle 绑定不支持数组和对象。

      修饰符

      修饰符说明
      .prop作为一个 DOM property 绑定而不是作为 attribute 绑定。(差别在哪里?)
      .camel将 kebab-case 特性名转换为 camelCase. (从 2.1.0 开始支持)
      .sync会扩展成一个更新父组件绑定值的 v-on 侦听器。 (2.3.0+) 语法糖

      示例

      绑定普通属性

      <!-- 绑定一个属性 -->
      <img v-bind:src="imageSrc">
      <!-- 缩写 -->
      <img :src="imageSrc">
      

      动态特性名

      <!-- 动态特性名 (2.6.0+) -->
      <button v-bind:[key]="value"></button>
      <!-- 动态特性名缩写 (2.6.0+) -->
      <button :[key]="value"></button>
      

      内联字符串拼接

      <!-- 内联字符串拼接 -->
      <img :src="'/path/to/images/' + fileName">
      

      class 绑定

      <!-- class 绑定 -->
      <div :class="{ red: isRed }"></div>
      <div :class="[classA, classB]"></div>
      <div :class="[classA, { classB: isB, classC: isC }]">
      

      style 绑定

      <!-- style 绑定 -->
      <div :style="{ fontSize: size + 'px' }"></div>
      <div :style="[styleObjectA, styleObjectB]"></div>
      

      绑定一个有属性的对象

      <!-- 绑定一个有属性的对象 -->
      <div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>
      

      通过 prop 修饰符绑定 DOM 属性

      <!-- 通过 prop 修饰符绑定 DOM 属性 -->
      <div v-bind:text-content.prop="text"></div>
      

      prop 绑定

      <!-- prop 绑定。“prop”必须在 my-component 中声明。-->
      <my-component :prop="someThing"></my-component>
      

      通过 $props 将父组件的 props 一起传给子组件

      <!-- 通过 $props 将父组件的 props 一起传给子组件 -->
      <child-component v-bind="$props"></child-component>
      
      <!-- XLink -->
      <svg><a :xlink:special="foo"></a></svg>
      

      .camel

      .camel 修饰符允许在使用 DOM 模板时将 v-bind 属性名称驼峰化,例如 SVG 的 viewBox 属性:

      <svg :view-box.camel="viewBox"></svg>
      

      在使用字符串模板或通过 vue-loader/vueify 编译时,无需使用 .camel

      参考

      目录
      目录