首页 > 其他分享 >VUE v-bind 数据绑定

VUE v-bind 数据绑定

时间:2022-09-24 02:11:20浏览次数:78  
标签:VUE DOM bind 绑定 prop attribute property

动态的绑定一个或多个 attribute,也可以是组件的 prop。

  • 缩写: : 或者 . (当使用 .prop 修饰符)
  • 期望: any (带参数) | Object (不带参数)
  • 参数: attrOrProp (可选的)
  • 修饰符:
    • .camel ——将短横线命名的 attribute 转变为驼峰式命名。
    • .prop ——强制绑定为 DOM property。3.2+
    • .attr ——强制绑定为 DOM attribute。3.2+

用途

当用于绑定 class 或 style attribute,v-bind 支持额外的值类型如数组或对象。详见下方的指南链接。在处理绑定时,Vue 默认会利用 in 操作符来检查该元素上是否定义了和绑定的 key 同名的 DOM property。

如果存在同名的 property,则 Vue 会把作为 DOM property 赋值,而不是作为 attribute 设置。这个行为在大多数情况都符合期望的绑定值类型,但是你也可以显式用 .prop 和 .attr 修饰符来强制绑定方式。有时这是必要的,特别是在和自定义元素打交道时。

当用于组件 props 绑定时,所绑定的 props 必须在子组件中已被正确声明。当不带参数使用时,可以用于绑定一个包含了多个 attribute 名称-绑定值对的对象。

示例

<!-- 绑定 attribute -->
<img v-bind:src="imageSrc" />

<!-- 动态 attribute 名 -->
<button v-bind:[key]="value"></button>

<!-- 缩写 -->
<img :src="imageSrc" />

<!-- 缩写形式的动态 attribute 名 -->
<button :[key]="value"></button>

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

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

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

<!-- 绑定对象形式的 attribute -->
<div v-bind="{ id: someProp, 'other-attr': otherProp }"></div>

<!-- prop 绑定。“prop” 必须在子组件中已声明。 -->
<MyComponent :prop="someThing" />

<!-- 传递子父组件共有的 prop -->
<MyComponent v-bind="$props" />

<!-- XLink -->
<svg><a :xlink:special="foo"></a></svg>

使用

简单点来说就是对 HTML 中的元素,我们可以使用 v-bind 来进行绑定和动态的数据输出。

一个最简单的使用例子就是下面的我们需要根据我们返回的数据动态绑定一个图片。

<img
   v-bind:src="item.blogCover"
   alt=""
   class="img-thumbnail"
   />

上面的代码,中的 item.blogCover 是我们从 JSON 返回对象中获得的数据,我们可以使用这个内置操作符将上面的图片的链接绑定到图片的 SRC 属性上。

 

2022-09-23_14-00-18

 

通过上图绑定后,我们就可以完成图片的动态显示了。

 

https://www.ossez.com/t/vue-v-bind/14113

标签:VUE,DOM,bind,绑定,prop,attribute,property
From: https://www.cnblogs.com/huyuchengus/p/16724827.html

相关文章

  • Vue2项目解决-js/css文件无法引用问题
    打包:    在vue.config.js文件中  const{defineConfig}=require('@vue/cli-service')module.exports=defineConfig({  transpileDependencies:t......
  • .NET 文件系统(七)--vue3.0文件系统搭建与配置(router配置)
    不过多介绍node安装与vue-cli安装配置,自行百度1.新建vite项目npminitvite@latest选择vue,选择ts即可生成依赖:npminstall启动项目:npmrundev2.路由(router)配置......
  • Vuex 学习笔记
    组件之间共享数据的方式小范围父向子:v-bind属性绑定简写:子向父:v-on事件绑定简写@兄弟组件之间共享数据:EventBusVuex是实现组件全局状态(数据)管理的一种机制,可......
  • Vue3与Vue2的区别(面试题)
    模板指令1、v-if、v-for优先级区别3.0依然不建议写在一个元素上但是依然可以同时绑定Vue2:当在同一个元素上使用v-if时,将优先v-forVue3:v-if优先,再v-for 2、v-model......
  • Vue组件递归渲染
    父级菜单  数据格式  子组件递归(直接使用name) ......
  • vue页面嵌套iframe页面传值、调用、首次传值获取不到、有缓存数据问题
    在父组件中创建iframe <!--iframe-->   <!-- --><el-dialog:visible.sync="dialogVisible"width="500px"@close="closeDialog"v-if="dialogVi......
  • vue组件命名错误
    Componentname“Home“shouldalwaysbemulti-worde/multi-word-component-names报错的原因:在组件命名的时候未按照ESLint的官方代码规范进行命名,根据ESLint官......
  • vue3路由简单配置
    路由目录各文件内容【router/index】import{createRouter,createWebHashHistory,createWebHistory}from"vue-router";import{scrollBehavior}from"./helpe......
  • 【Vue】vue项目搭建、ES6的简单使用(大觅)
    目录项目搭建与基本配置项目搭建安装淘宝NPM镜像cnpm安装webpack新建项目运行项目运行时出现的一些问题和解决方案框架安装安装UI框架iView引入UI框架iView引入方式1:全部......
  • 【Vue】vue基础学习笔记
    目录基础差值语法模板语法数据绑定el与data的两种写法el与data写法1el写法2:挂载data写法2:函数式写法绑定样式绑定class样式绑定style样式条件渲染基础差值语法<divid......