如何防止命名空间 HTML 元素的 Vue 错误 "Unknown custom element"
How to prevent Vue error "Unknown custom element" for namespaced HTML elements
我在必须输出命名空间元素的环境中使用 Vue,例如 <foo:aside>
。这些元素目前甚至没有被 Vue 以任何方式处理(将值绑定到属性、添加事件处理程序等),它们只是存在于模板中。但是,它们可能包含必须处理的子项和我的包含小胡子语法以显示变量等,因此 v-pre
将禁用这些,因此不是我的用例的解决方案。
一切正常,但控制台充斥着以下错误:
[Vue warn]: Unknown custom element: <foo:aside> - did you register the component correctly?
For recursive components, make sure to provide the "name" option.
命名空间是通过 xmlns:foo
在根元素上定义的,但这对 Vue 应该没有影响。
有什么办法可以防止这种情况发生,通过某种方式告诉 Vue 忽略命名空间元素,或者至少定义在普通 HTML 元素上应该允许使用哪些命名空间?
你可以使用v-pre
告诉vue该元素应该被忽略,检查vue.js api.
例如:
<foo:aside v-pre>
多亏了 (虽然我不同意它是重复的,因为它适用于整个命名空间并需要子元素才能工作)和 Silencesys 的评论,我最终得到了这个解决方案:
Vue.config.ignoredElements = [/^foo:/];
从 Vue 2.5 开始,您可以对 ignoredElements
使用正则表达式,这是忽略整个命名空间而无需添加每个可能的标签名称的完美方式,同时仍然保留这些元素上的 Vue 功能和他们的子元素。
我在必须输出命名空间元素的环境中使用 Vue,例如 <foo:aside>
。这些元素目前甚至没有被 Vue 以任何方式处理(将值绑定到属性、添加事件处理程序等),它们只是存在于模板中。但是,它们可能包含必须处理的子项和我的包含小胡子语法以显示变量等,因此 v-pre
将禁用这些,因此不是我的用例的解决方案。
一切正常,但控制台充斥着以下错误:
[Vue warn]: Unknown custom element: <foo:aside> - did you register the component correctly?
For recursive components, make sure to provide the "name" option.
命名空间是通过 xmlns:foo
在根元素上定义的,但这对 Vue 应该没有影响。
有什么办法可以防止这种情况发生,通过某种方式告诉 Vue 忽略命名空间元素,或者至少定义在普通 HTML 元素上应该允许使用哪些命名空间?
你可以使用v-pre
告诉vue该元素应该被忽略,检查vue.js api.
例如:
<foo:aside v-pre>
多亏了
Vue.config.ignoredElements = [/^foo:/];
从 Vue 2.5 开始,您可以对 ignoredElements
使用正则表达式,这是忽略整个命名空间而无需添加每个可能的标签名称的完美方式,同时仍然保留这些元素上的 Vue 功能和他们的子元素。