我有一个按钮组件,它呈现一个nuxt链接或一个按钮,这取决于你是否提供了一些属性,比如totype.

<div class="Btn">
  <component
    :class="['Btn__button', createAppearanceClasses]"
    v-on:click="click"
    :disabled="disabled"
    :is="type"
    :to="to"
    :href="external ? to : false"
    :target="target"
    :type="buttonType"
    >
    <slot />
  </component>
</div>

(type是一个计算(computed)属性,用于返回内部链接的nuxt-link,如果是外部链接,则返回a标记,如果这些属性未定义,则返回button)

现在,我们有时会呈现一些打开模式或提交的按钮.在这里,我们不传递任何类型或属性:

<Btn :class="'FlexContent__button'" 
  :appearance="['rounded-corners']"
  v-on:click.native="openOverlay" 
>    
 {{ component.text }}
</Btn>

在呈现的HTML中,我得到:

<button disabled to="" target="" type="" class="Btn__button Btn__button--rounded-corners">

如果我验证了这一点,我会得到关于这些空属性的错误:

如果我有一个传递给Btn组件的实际值,我如何才能呈现属性to=""

我在想这样的事情,但这不起作用:

提前感谢您的提示.

干杯

推荐答案

任何使用v-bind绑定到null、未定义或false值的属性都不会在元素中呈现.

Attributes and v-bind

Vue.js相关问答推荐

为什么在Vue.js中修改非react 性似乎是react 性的?

如何在AXIOS调用响应中动态导入视频并创建它的绝对路径?

为什么在 Vue2 中调用 this.$emit() 后 props 没有立即更新?

使用项目和字段,列跨度为 2 的 Bootstrap-vue 表

Vue 2 如何在全局函数中返回观察者

将 v-calendar 与以时间和日期格式出现的事件一起使用

:deep() 带有嵌套 scss 规则的语法

纵横比元素溢出容器

Vue Js Composition Api 未定义(读取名称)

理解 VueJS 中的组件 props

如何在 vue.js 中包含当年的版权?

如何判断 Vue 组件是否处于活动状态

Vue:从 Vue 实例更新组件数据

未捕获的类型错误:c.querySelectorAll 不是函数

Vuejs:我应该在 vue-router SPA 中的哪里放置一些常用的 js 工具?

我在 Nuxt 2.14.0 中运行的是什么版本的 Vue?

如何将数据传递给 Vue.js 中的路由视图

有没有办法知道组件实例何时挂载?

使用 puppeteer 生成 PDF 而不保存

仅在提交时验证 vuetify 文本字段