[英]Vue ignore custom component tag
在我的网站上,我使用的是 Google CSE(google 的自定义搜索引擎)。
这是我的 HTML:
<div id="app">
...
<gcse:search></gcse:search>
...
</div>
<script type="text/javascript">
new Vue({ el: '#app' })
</script>
如您所见,我在我的 vue 应用程序中放置了一个“gcse 输入”。
因此我收到警告:
[Vue 警告]:未知的自定义元素:
<gcse:search>
所以我的问题是如何停止尝试在 Vue.js 中初始化这个自定义组件?
提前致谢。
Vue 认为您正在尝试加载一个名为gcse:search
的 Vue 组件。
为了忽略这个标签,添加v-pre
指令:
<gcse:search v-pre></gcse:search>
或者,您可以将gcse:search
标签添加到 Vue 的ignoreElements列表中:
Vue.config.ignoredElements = ['gcse:search']
除了thanksd的答案,您可以通过在ignoreElements 属性中添加这些标签来忽略未知标签:
Vue.config.ignoredElements = ['gcse:search']
您还可以使用正则表达式而不是字符串来忽略这些标签:
Vue.config.ignoredElements = [/gcse:*/]
如果您想忽略更多具有特定模式的标签/组件,这非常有用。 在这种情况下,您可以忽略所有以“gcse”开头的标签
在Vue 3中,情况有所不同。
有两种配置方法。
runtime compiler
请注意,如果您使用runtime-only build
,这将不起作用
const app = createApp({})
app.config.compilerOptions.isCustomElement = tag => tag.startsWith('ion-')
runtime-only build
这里你必须在webpack.config.js
中为vue-loader
添加一个规则
rules: [
{
test: /\.vue$/,
use: 'vue-loader',
options: {
compilerOptions: {
isCustomElement: tag => tag.startsWith('ion-')
}
}
}
// ...
]
如果你正在使用laravel-mix
,以前的方法对你不起作用,正确的方法是在laravel-mix
的 vue 函数中传递options
mix.js('resources/js/app.js', 'public/js')
.vue({
options: {
compilerOptions: {
isCustomElement: tag => tag.startsWith('ion-')
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.