【问题标题】:Why I get an error in Vue when using custom HTML tags?为什么我在使用自定义 HTML 标签时在 Vue 中出现错误?
【发布时间】:2020-09-15 13:11:12
【问题描述】:

我真的很喜欢 Vue,我是一个尝试只使用自定义标签的新手:

<ui-button>Learn more</ui-button>

但是,我收到一条错误消息,提示我必须注册该组件。所以,为了解决这个问题,我使用了:https://vuejs.org/v2/api/#ignoredElements

我也在其他框架中尝试过,但没有显示错误,但其他框架遵循不同的方法。也许无法区分组件和自定义标签。

自定义组件 = 自定义标签 + 封装的行为和样式

如果不将我的标签注册为组件,是否可以在 Vue 中避免这种情况?

更新

非常感谢您的时间和努力,我并不是说其他​​框架更好。我只是想避免过度设计并使用简单的自定义标签来使 HTML 文档更具可读性。

【问题讨论】:

  • 您能否提供一个完整的代码示例?在 Vue 中,您必须在父组件中注册组件导入并传入组件属性或全局。
  • @David 非常感谢,您可以在 Vue 模板中的任何位置添加该行代码以查看错误。它不是一个真正的组件,我只是使用标准的 HTML 标签。如果您在 JSX 中的 React 中执行相同操作,则控制台中不会出现错误。
  • <ui-button> 是您的浏览器可以理解的not an HTML component。这就是 Vue 引用组件(不是自定义标签)的方式。 Vue 的编译器告诉你你在屏幕上放置了一个组件,但没有告诉 Vue 如何找到它。 React 和 Vue 不是一回事,不应该期望以相同的方式行事。
  • 是的 Bryce,它是一个自定义标签,我们可以使用它,它使 HTML 文档更具可读性!我并不是说其他​​框架更好。我不在乎,我只是想避免过度设计。我知道 React 和 Vue 不是一回事,不必采取同样的方式:) 我已经更新了我的问题。非常感谢您提供有据可查的答案。

标签: javascript html reactjs vue.js tags


【解决方案1】:

您应该在全局或本地注册组件。

全球注册

Vue.component('my-component-name', {
  // ... options ...
})

本地注册(在另一个组件中)

import ComponentA from './ComponentA.vue'

export default {
  components: {
    ComponentA
  },
  // ...
}

更多关于https://vuejs.org/v2/guide/components-registration.html的信息

【讨论】:

猜你喜欢
  • 2011-02-12
  • 2022-01-15
  • 1970-01-01
  • 2011-09-08
  • 2022-08-13
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多