Vue 忽略自定义组件标签
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 input"。
因此我收到警告:
[Vue warn]: Unknown custom element: <gcse:search>
所以我的问题是如何停止尝试在 Vue.js 中初始化此自定义组件?
提前致谢。
Vue 认为您正在尝试加载名为 gcse:search
的 Vue 组件。
为了忽略这个标签,添加 v-pre
directive:
<gcse:search v-pre></gcse:search>
或者,您可以将 gcse:search
标记添加到 Vue 的 ignoredElements 列表中:
Vue.config.ignoredElements = ['gcse:search']
除了 thanksd 的答案之外,您可以通过在 ignoredElements 属性 中添加这些标签来忽略未知标签:
Vue.config.ignoredElements = ['gcse:search']
您也可以使用正则表达式而不是字符串来忽略这些标签:
Vue.config.ignoredElements = [/gcse:*/]
如果您想忽略更多具有特定模式的 tags/components,这将非常有用。在这种情况下,您可以忽略所有以 "gcse"
开头的标签
在 Vue 3 中是不同的。
有两种配置方式。
1。如果您使用 runtime compiler
请注意,如果您使用 runtime-only build
,这将不起作用
const app = createApp({})
app.config.compilerOptions.isCustomElement = tag => tag.startsWith('ion-')
2。使用 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-')
}
}
})
参考文献:
在我的网站上,我使用 Google CSE(google 的自定义搜索引擎)。
这是我的 HTML:
<div id="app">
...
<gcse:search></gcse:search>
...
</div>
<script type="text/javascript">
new Vue({ el: '#app' })
</script>
如您所见,我在我的 vue 应用程序中放置了一个 "gcse input"。
因此我收到警告:
[Vue warn]: Unknown custom element:
<gcse:search>
所以我的问题是如何停止尝试在 Vue.js 中初始化此自定义组件?
提前致谢。
Vue 认为您正在尝试加载名为 gcse:search
的 Vue 组件。
为了忽略这个标签,添加 v-pre
directive:
<gcse:search v-pre></gcse:search>
或者,您可以将 gcse:search
标记添加到 Vue 的 ignoredElements 列表中:
Vue.config.ignoredElements = ['gcse:search']
除了 thanksd 的答案之外,您可以通过在 ignoredElements 属性 中添加这些标签来忽略未知标签:
Vue.config.ignoredElements = ['gcse:search']
您也可以使用正则表达式而不是字符串来忽略这些标签:
Vue.config.ignoredElements = [/gcse:*/]
如果您想忽略更多具有特定模式的 tags/components,这将非常有用。在这种情况下,您可以忽略所有以 "gcse"
开头的标签在 Vue 3 中是不同的。
有两种配置方式。
1。如果您使用 runtime compiler
请注意,如果您使用 runtime-only build
const app = createApp({})
app.config.compilerOptions.isCustomElement = tag => tag.startsWith('ion-')
2。使用 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
options
mix.js('resources/js/app.js', 'public/js')
.vue({
options: {
compilerOptions: {
isCustomElement: tag => tag.startsWith('ion-')
}
}
})