美文网首页
Vue3 属性绑定

Vue3 属性绑定

作者: Yandhi233 | 来源:发表于2021-12-13 22:42 被阅读0次

在写 Vue3 项目的过程中注意到当父组件给子组件传属性和事件时默认是将所有属性绑定到子组件的 根元素

//  父组件
<template>
    <h2>示例1</h2>
    <div>
        <Button 
        @click="onclick"
        @focus="onClick"
        @mouseover="onClick">
        你好
        </Button>
    </div>
</template>
//  子组件
<template>
//  默认绑定到根元素 div 上
    <div >
        <button>
            <slot/>
        </button>
    </div>
</template>

如何根据具体需求进行绑定呢?

1. 指定 button 元素拥有全部属性
  • 使用 inheritAttrs: false 取消默认绑定
  • 使用 $attrs 或者 context.attrs 获取所有属性
  • 使用 v-bind="$attrs" 批量绑定属性
// 子组件
<template>
   <div >
       <button v-bind="attrs">
       <slot />
   </button>
   </div>
</template>
<script lang="ts">
export default {
   inheritAttrs:false,
   setup(props,context){
       const attrs = context.attrs
       return {attrs}
   }
}
</script>
2. 指定元素批量绑定属性

onClick 事件绑定给根元素 div,其余 rest 绑定给 button

  • 通过 ES6 剩余操作符 ...rest 将除 onClick 事件外放在 rest 中并 return { onClick, rest}
//  子组件
<template>
    <div @click="onclick">
        <button v-bind="rest">
        <slot/>
    </button>
    </div>
</template>
<script lang="ts">
export default {
    inheritAttrs:false,
    setup(props,context){
        const {onClick,...rest} = context.attrs
        return {onClick,rest}
    }
}
</script>

相关文章

  • vue3组件绑定事件

    vue3绑定属性新特性 默认所有属性都绑定到组件的根元素 如果不想绑定属性到根元素,可以配置inheritAttr...

  • vue3 v-model给子组件绑定属性

    vue3 v-model给子组件绑定属性

  • Vue3的v-model以及传值

    Vue3:v-model 一、v-model:双向绑定 Vue3:v-model规定: 属性名任意(假设为xxx)...

  • Vue3 属性绑定

    在写 Vue3 项目的过程中注意到当父组件给子组件传属性和事件时默认是将所有属性绑定到子组件的 根元素 上 如何根...

  • 绑定class和内联样式style | 重学Vue3

    这个月开始重新开始学习Vue3,从理解基本使用到模拟实现! 本文是关于Vue中的属性绑定:绑定class和内联样式...

  • vue3 动态绑定属性

    动态绑定属性 一般情况下,我们绑定的src、href、class、style,属性名称都是固定的;但是在某些特殊情...

  • angular--数据绑定

    数据绑定几种语法: 事件绑定: 属性绑定和插值绑定是一样的: HTML属性和DOM属性的关系: HTML属性绑定:...

  • angular 模板里面绑定属性

    1. 绑定静态属性 static property example 2. 绑定动态属性 动态属性绑定要用 [] /...

  • angular-2

    angular基础模板语法 文本绑定 {{}} html绑定 [innerHTML]="xxx" 属性绑定 [属性...

  • Vue - 指令 - (v-bind)

    v-bind 两种方式绑定: 1.绑定属性 可以绑定属性意味着也能绑定style属性: 2.绑定一个对象的所有属性...

网友评论

      本文标题:Vue3 属性绑定

      本文链接:https://www.haomeiwen.com/subject/gmbsfrtx.html