欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue3如何定義全局組件

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

前言

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

若需構(gòu)建 vue 項(xiàng)目,請(qǐng)移步 vite構(gòu)建vue3項(xiàng)目

目錄如下

注冊(cè)全局組件

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

// createApp 函數(shù)創(chuàng)建一個(gè)應(yīng)用實(shí)例
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ù)返回根組件實(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="表格行的標(biāo)題"></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é)果全局組件未生效,且控制臺(tái)打印出警告:

[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)有明確的原因描述 

運(yùn)行時(shí) + 編譯器 vs. 僅運(yùn)行時(shí)

使用構(gòu)建工具

由于 main.js 中全局組件都是使用 html 字符串傳遞到 template 選項(xiàng),此時(shí)就是 運(yùn)行時(shí) + 編譯器,需要完整的構(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)建工具,默認(rèn)僅運(yùn)行時(shí)

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

相關(guān)文章

  • Vue+Koa2 打包后進(jìn)行線上部署的教程詳解

    Vue+Koa2 打包后進(jìn)行線上部署的教程詳解

    這篇文章主要介紹了Vue+Koa2 打包后如何進(jìn)行線上部署,給大家分享了一些問題及解決方法,需要的朋友可以參考下
    2019-07-07
  • Vue之Pinia狀態(tài)管理

    Vue之Pinia狀態(tài)管理

    這篇文章主要介紹了Vue中Pinia狀態(tài)管理,Pinia開始于大概2019年,其目的是設(shè)計(jì)一個(gè)擁有 組合式 API 的 Vue 狀態(tài)管理庫,Pinia本質(zhì)上依然是一個(gè)狀態(tài)管理庫,用于跨組件、頁面進(jìn)行狀態(tài)共享,感興趣的同學(xué)可以參考閱讀
    2023-04-04
  • Vue的MVVM實(shí)現(xiàn)方法

    Vue的MVVM實(shí)現(xiàn)方法

    本篇文章主要主要介紹了Vue的MVVM實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • vue3 setup語法糖之父子組件之間的傳值方法

    vue3 setup語法糖之父子組件之間的傳值方法

    父組件向子組件傳值的時(shí)候,子組件是通過props來接收的,然后以變量的形式將props傳遞到setup語法糖果中使用,本文給大家介紹vue3 setup語法糖之父子組件之間的傳值,感興趣的朋友一起看看吧
    2023-12-12
  • 客戶端(vue框架)與服務(wù)器(koa框架)通信及服務(wù)器跨域配置詳解

    客戶端(vue框架)與服務(wù)器(koa框架)通信及服務(wù)器跨域配置詳解

    本篇文章主要介紹了客戶端(vue框架)與服務(wù)器(koa框架)通信及服務(wù)器跨域配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • vuecli4配置sass與less詳解

    vuecli4配置sass與less詳解

    這篇文章主要為大家介紹了vuecli4配置sass與less詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Vue預(yù)覽圖片和視頻的幾種實(shí)現(xiàn)方式

    Vue預(yù)覽圖片和視頻的幾種實(shí)現(xiàn)方式

    本文主要介紹了Vue預(yù)覽圖片和視頻的幾種實(shí)現(xiàn)方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue自定義組件實(shí)現(xiàn)v-model雙向綁定數(shù)據(jù)的實(shí)例代碼

    vue自定義組件實(shí)現(xiàn)v-model雙向綁定數(shù)據(jù)的實(shí)例代碼

    vue中父子組件通信,都是單項(xiàng)的,直接在子組件中修改prop傳的值vue也會(huì)給出一個(gè)警告,接下來就用一個(gè)小列子一步一步實(shí)現(xiàn)了vue自定義的組件實(shí)現(xiàn)v-model雙向綁定,需要的朋友可以參考下
    2021-10-10
  • Vue Cli項(xiàng)目重構(gòu)為Vite的方法步驟

    Vue Cli項(xiàng)目重構(gòu)為Vite的方法步驟

    本文主要介紹了Vue Cli項(xiàng)目重構(gòu)為Vite的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue項(xiàng)目main.js配置及使用方法

    vue項(xiàng)目main.js配置及使用方法

    main.js是項(xiàng)目的入口文件,項(xiàng)目中所有的頁面都會(huì)加載main.js,本文主要介紹了vue項(xiàng)目main.js配置及使用方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2023-05-05

最新評(píng)論