发布于2021-05-30 12:07 阅读(983) 评论(0) 点赞(9) 收藏(3)
vue3
全局组件需在 main.js
中定义,参考官网中的 2 个例子,实操如下。若需构建 vue
项目,请移步 vite构建vue3项目。
目录如下
// main.js
import { createApp } from 'vue'
import App from './App.vue'
// createApp 函数创建一个应用实例
const app = createApp(App)
// 定义全局组件
app.component('alert-box', {
template: `
<div class="demo-alert-box">
<strong>Error!</strong>
<slot></slot>
</div>
`
})
app.component('blog-post', {
props: ['postTitle'],
template: `
<h3>{{ postTitle }}</h3>
`
})
// mount 函数返回根组件实例
const vm = app.mount('#app')
console.warn('app', app, vm);
// HelloWorld.vue
<template>
<h1>{{ msg }}</h1>
<p>
<a href="https://vitejs.dev/guide/features.html" target="_blank">
Vite Documentation
</a>
|
<a href="https://v3.vuejs.org/" target="_blank">Vue 3 Documentation</a>
</p>
<button @click="state.count++">count is: {{ state.count }}</button>
<p>
Edit
<code>components/HelloWorld.vue</code> to test hot module replacement.
</p>
<table>
<tr v-is="'blog-post'" post-title="表格行的标题"></tr>
</table>
<alert-box>
Something bad happened.
</alert-box>
<blog-post post-title="hello!"></blog-post>
</template>
<script setup>
import { defineProps, reactive } from 'vue'
defineProps({
msg: String
})
const state = reactive({ count: 0 })
</script>
<style scoped>
a {
color: #42b983;
}
</style>
结果全局组件未生效,且控制台打印出警告:
[Vue warn]: Component provided template option but runtime compilation is not supported in this build of Vue. Configure your bundler to alias “vue” to “vue/dist/vue.esm-bundler.js”.
此处的警告在官网中已经有明确的原因描述
运行时 + 编译器 vs. 仅运行时
使用构建工具
由于 main.js
中全局组件都是使用 html
字符串传递到 template
选项,此时就是 运行时 + 编译器
,需要完整的构建版本,故需在 vite.config.js
中配置 vue
构建版本为 vue.esm-bundler.js
。
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'vue': 'vue/dist/vue.esm-bundler.js'
},
},
})
效果如下:
vue3
使用构建工具,默认仅运行时原文链接:https://blog.csdn.net/harmsworth2016/article/details/117266787
作者:小猪佩奇身上纹
链接:http://www.qianduanheidong.com/blog/article/115987/9a72e7da2c523c5ffe43/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!