当前位置: 首页 > 知识库问答 >
问题:

vue.js - vue3关闭透传Attributes后怎么把属性传到子元素上?

裴育
2023-11-05
<script setup lang="ts">import { useAttrs } from 'vue'defineOptions({  inheritAttrs: false})const attrs = useAttrs()</script><template>  <div>    <input type="text" class="form-control">  </div></template>

共有2个答案

法镜
2023-11-05

v-bind="attrs"

<div>    <input type="text" class="form-control" v-bind="attrs" />  </div>
郎子平
2023-11-05

这个问题涉及到 Vue 3 的 inheritAttrs: false 选项和 useAttrs 钩子。当你设置 inheritAttrs: false,Vue 将不再自动将父级组件的属性传递给子组件。在这种情况下,你需要使用 useAttrs 钩子来手动获取属性并将它们传递给子组件。

首先,你需要将 useAttrs 钩子的返回值作为一个对象来使用,这个对象中的属性可以直接在模板中使用。然后你可以通过这些属性向子元素传递属性。

下面是如何修改你的代码以实现这一点的示例:

<script setup lang="ts">import { useAttrs } from 'vue'defineOptions({  inheritAttrs: false})const attrs = useAttrs()</script><template>  <div>    <input :type="attrs.type" :class="attrs.class" />  </div></template>

在这个例子中,我使用了 :type="attrs.type":class="attrs.class" 来将 typeclass 属性传递给 <input> 元素。这是因为 useAttrs 钩子的返回值是一个对象,其中包含所有从父组件接收的属性。这样,你就可以直接在子组件中访问这些属性了。

 类似资料:
  • 需求,我的 vue3 中的 data=ref([]) 更新之后,我希望 echarts 的图标也跟着一起更新 但是目前不会,我该怎么修改

  • Most of the functions take attributes that specify or modify their behavior. Attributes to Smarty functions are much like HTML attributes. Static values don't have to be enclosed in quotes, but it is

  • 当涉及到DOM元素时,我们可以操作的一些最基本的组件是分配给这些元素的属性和属性。 大多数这些属性都可以通过JavaScript作为DOM节点属性获得。 一些比较常见的属性是 - className tagName id href title rel src 考虑以下用于图像元素的HTML标记 - <img id = "imageid" src = "image.gif" alt = "Image

  • “属性”是C11标准中的新语法,用于让程序员在代码中提供额外信息。相较于风格各异的传统方式(attribute, __declspec, #pragma等),“属性”语法致力于将各种“方言”进行统一。 与传统语法不同的是,“属性”语法相当灵活,可以随处添加,且总是作用于与之相邻的语法实体。 void f [[ noreturn ]] () // f() 永不返回 { throw "error"

  • 我们已经看到很少的HTML标签及其用法,如标题标签《h1》, 《h2》,段落标签《p》和其他标签。 到目前为止,我们以最简单的形式使用它们,但是大多数HTML标签也可以具有属性,这些属性是额外的信息。 属性用于定义HTML元素的特征,并放置在元素的开始标记内。 所有属性都由两部分组成 - name和value name是您要设置的属性。 例如,示例中的段落《p》元素带有一个名称为align的属性,

  • 如前一章所述,元素可能包含用于设置元素的各种属性的属性。 某些属性是全局定义的,可以在任何元素上使用,而其他属性仅针对特定元素定义。 所有属性都有一个名称和一个值,如下例所示。 以下是HTML5属性的示例,其中说明了如何使用值“example”标记具有名为class的属性的div元素 - <div class = "example">...</div> 属性只能在start tags指定,绝不能