最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3如何定義全局組件

 更新時間:2024年10月11日 11:08:11   作者:harmsworth2016  
本文介紹了如何在Vue3中注冊和使用全局組件,并解決了通過template定義組件時出現(xiàn)的警告問題,具體方法是在vite.config.js文件中配置Vue構(gòu)建版本為vue.esm-bundler.js,以支持運行時編譯,此操作確保全局組件可以正常工作并解決了編譯警告

前言

vue3 全局組件需在 main.js 中定義,參考官網(wǎng)中的 2 個例子,實操如下。

若需構(gòu)建 vue 項目,請移步 vite構(gòu)建vue3項目

目錄如下

注冊全局組件

// main.js
import { createApp } from 'vue'
import App from './App.vue'

// createApp 函數(shù)創(chuàng)建一個應(yīng)用實例
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 函數(shù)返回根組件實例
const vm = app.mount('#app')

console.warn('app', app, vm);

使用全局組件

// HelloWorld.vue
<template>
  <h1>{{ msg }}</h1>

  <p>
    <a  rel="external nofollow"  target="_blank">
      Vite Documentation
    </a>
    |
    <a  rel="external nofollow"  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>

結(jié)果全局組件未生效,且控制臺打印出警告:

[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”.

此處的警告在官網(wǎng)中已經(jīng)有明確的原因描述 

運行時 + 編譯器 vs. 僅運行時

使用構(gòu)建工具

由于 main.js 中全局組件都是使用 html 字符串傳遞到 template 選項,此時就是 運行時 + 編譯器,需要完整的構(gòu)建版本,故需在 vite.config.js 中配置 vue 構(gòu)建版本為 vue.esm-bundler.js。

配置 vue 構(gòu)建版本

// 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' 
    },
  },
})

效果如下:

總結(jié)

vue3 使用構(gòu)建工具,默認僅運行時

總結(jié)以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue 中自定義指令改變data中的值

    vue 中自定義指令改變data中的值

    這篇文章主要介紹了vue 中自定義指令改變data中的值,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Vue3如何實現(xiàn)內(nèi)嵌iframe文檔顯示功能

    Vue3如何實現(xiàn)內(nèi)嵌iframe文檔顯示功能

    這篇文章主要為大家詳細介紹了如何在Vue3項目中優(yōu)雅地實現(xiàn)內(nèi)嵌iframe功能,用于加載外部文檔內(nèi)容,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-05-05
  • vue打包并部署到nginx上的實現(xiàn)示例

    vue打包并部署到nginx上的實現(xiàn)示例

    本文主要介紹了vue打包并部署到nginx上的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-01-01
  • Vue動態(tài)路由路徑重復(fù)及刷新丟失頁面問題的解決

    Vue動態(tài)路由路徑重復(fù)及刷新丟失頁面問題的解決

    這篇文章主要介紹了Vue動態(tài)路由路徑重復(fù)及刷新丟失頁面問題的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue Router官方路由解決方案全解析(最新推薦)

    Vue Router官方路由解決方案全解析(最新推薦)

    VueRouter與Vue核心深度集成,提供響應(yīng)式路由、聲明式導(dǎo)航、懶加載等性能優(yōu)化,以及與Vuex的無縫協(xié)作,其極簡API和聲明式編程模型提升開發(fā)效率,是Vue項目的首選路由方案,本文介紹Vue Router官方路由解決方案解析,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • uniapp 小程序和app map地圖上顯示多個酷炫動態(tài)的標點效果(頭像后端傳過來)

    uniapp 小程序和app map地圖上顯示多個酷炫動態(tài)的標點效果(頭像后端傳過來)

    這篇文章主要介紹了uniapp 小程序和app map地圖上顯示多個酷炫動態(tài)的標點效果(頭像后端傳過來),本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 關(guān)于Vue中的全局導(dǎo)航守衛(wèi)(beforeEach、afterEach)

    關(guān)于Vue中的全局導(dǎo)航守衛(wèi)(beforeEach、afterEach)

    這篇文章主要介紹了關(guān)于Vue中的全局導(dǎo)航守衛(wèi)(beforeEach、afterEach),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue實現(xiàn)虛擬滾動渲染成千上萬條數(shù)據(jù)

    vue實現(xiàn)虛擬滾動渲染成千上萬條數(shù)據(jù)

    本文主要介紹了vue實現(xiàn)虛擬滾動渲染成千上萬條數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Vue按鈕權(quán)限的實現(xiàn)示例

    Vue按鈕權(quán)限的實現(xiàn)示例

    在編寫Vue代碼的時候,經(jīng)常會碰到各種權(quán)限問題,本文主要介紹了Vue按鈕權(quán)限的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • 路由vue-route的使用示例教程

    路由vue-route的使用示例教程

    這篇文章主要介紹了路由vue-route的使用,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

建瓯市| 台湾省| 扎囊县| 安图县| 资源县| 卢氏县| 洛宁县| 永济市| 台中市| 宜春市| 深水埗区| 兴义市| 靖安县| 临朐县| 大埔县| 大渡口区| 涟水县| 临泉县| 赤水市| 库伦旗| 文水县| 乌恰县| 皋兰县| 商河县| 大英县| 常德市| 信阳市| 天水市| 泽州县| 苍山县| 武清区| 平舆县| 梅河口市| 巴楚县| 呼玛县| 中江县| 霸州市| 孟津县| 新沂市| 五大连池市| 克山县|