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

vue3+ts+vite2項(xiàng)目實(shí)戰(zhàn)踩坑記錄

 更新時(shí)間:2022年09月03日 12:02:57   作者:飛魚日記  
最近嘗試上手Vue3+TS+Vite,對比起Vue2有些不適應(yīng),但還是真香,下面這篇文章主要給大家介紹了關(guān)于vue3+ts+vite2項(xiàng)目的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1.Vite創(chuàng)建vue3項(xiàng)目

使用 NPM:

npm init @vitejs/app

使用 Yarn:

yarn create @vitejs/app

一個(gè)命令快速安裝vite+ts+vue3項(xiàng)目:

npm init @vitejs/app vite-app --template vue-ts

默認(rèn)構(gòu)建好的目錄結(jié)構(gòu)是不包含routervuex的需要手動(dòng)安裝并創(chuàng)建對應(yīng)目錄,使用命令:

npm i vue-router@next vuex@next -S

注意:vue3.0只支持router和vuex必須是4.0及以上版本

下面是我創(chuàng)建好的實(shí)戰(zhàn)項(xiàng)目目錄,僅供參考:

2.配置別名alias

vite構(gòu)建的vue默認(rèn)是沒有@別名的,所以需要我們手動(dòng)配置下,如下圖vite2.0配置方法僅供參考:

3.引入element-plus

如果需要使用element ui庫需要使用兼容vue3.0的element-plus庫才行

安裝element-plus:

npm i element-plus -S

是按需引入還是全局全部引入,看個(gè)人需求,具體引入方法請移步到element-plus官網(wǎng)里面介紹的很詳細(xì),就不再贅述了

如果你是用按需加載可抽離成單獨(dú)文件,新建elementplus.ts代碼如下:

/*
 * @Author: 飛魚日記
 * @Date: 2021-04-18 16:12:26
 * @LastEditors: 飛魚日記
 * @LastEditTime: 2021-04-27 10:47:07
 * @Description: element-plus 組件全局按需加載文件
 */
// 官方網(wǎng)站:https://element-plus.gitee.io/#/zh-CN/component/installation
import {
  ElButton,
  ElLoading,
} from 'element-plus'

// 組件寫在components中
export const components: any[] = [
  ElButton,
]
// 插件寫在plugins中
export const plugins: any[] = [ElLoading]

main.ts引入,如下:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import { components, plugins } from './plugins/elementplus'
const app = createApp(App);

// 按需注冊elementplus的組插件
components.forEach(component => {
  app.component(component.name, component)
})
plugins.forEach(plugin => {
  app.use(plugin)
});

app.use(router).use(store).mount('#app');

4.glob全局導(dǎo)入

想要組件自動(dòng)注冊全局引入需要使用vite官方提供的導(dǎo)入方案,分為globglobEager異步和同步兩種,但是在實(shí)踐中g(shù)lob純在一個(gè)神秘的bug,由于它是異步加載組件的,如果一個(gè)頁面模板引入了很多組件,多次秒刷新時(shí)會(huì)出現(xiàn)白屏或者有的組件加載了有的組件未加載空白的情況,不知道是因?yàn)槲宜⑿绿?,組件未來的及加載還是什么,所以最后采用了globEager同步加載組件的方法,這個(gè)方法是一刷新所有組件同步加載的,多次秒刷沒有發(fā)現(xiàn)bug;
main.ts引入一段代碼:

/*****匹配根目錄文件將通過globEager動(dòng)態(tài)全局導(dǎo)入注冊組件--Start*****/
const modules = import.meta.globEager('./components/*/*.vue')
for (const path in modules) {
  app.component(modules[path].default.name,modules[path].default)
}

上面modules所匹配的目錄根據(jù)你自己的項(xiàng)目目錄配置即可,我傾向于匹配components下的所有子目錄下所有組件文件,如下圖:

注意:每個(gè)組件必須是具名組件(即組件name屬性必須設(shè)置名稱頁面應(yīng)用時(shí)需使用name名稱來調(diào)用)比如:

組件button:

頁面引入使用button組件里定義的name即可:

至此我們就可以暢快的使用組件了而且頁面無需使用import導(dǎo)入,是不是很爽- _ -

5.靜態(tài)資源導(dǎo)入

vite導(dǎo)入圖片方法,如果圖片放在assets里面不能使用絕對路徑引入比如

這樣引入打包時(shí)是不能夠被vite打包進(jìn)去的

官方推薦方法:

import imgUrl from './img.png'
document.getElementById('hero-img').src = imgUrl

至于css中背景圖片的url()同樣導(dǎo)入方法

總結(jié):

暫時(shí)寫這么多,vite相對于webpack簡直質(zhì)的飛躍,如其名速度超快,但往往新的事物誕生也會(huì)伴隨著新的坑需要我們?nèi)ヌ?,加油,奧利給~

到此這篇關(guān)于vue3+ts+vite2項(xiàng)目的文章就介紹到這了,更多相關(guān)vue3+ts+vite2項(xiàng)目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js的動(dòng)態(tài)組件模板的實(shí)現(xiàn)

    Vue.js的動(dòng)態(tài)組件模板的實(shí)現(xiàn)

    這篇文章主要介紹了Vue.js的動(dòng)態(tài)組件模板的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 在uni-app中使用vant組件的方法

    在uni-app中使用vant組件的方法

    最近在做uni-app的時(shí)候需要用到vant組件,在網(wǎng)上看到了很多的使用vant組件的方法,但是講解的大多繁瑣,或者無法使用,現(xiàn)把最新,最實(shí)用的vant組件的使用方法分享給大家,需要的朋友可以參考下
    2023-02-02
  • vue3利用customRef實(shí)現(xiàn)防抖

    vue3利用customRef實(shí)現(xiàn)防抖

    防抖就是對于頻繁觸發(fā)的事件添加一個(gè)延時(shí)同時(shí)設(shè)定一個(gè)最小觸發(fā)間隔,防抖大家都學(xué)過,但是如何在?Vue3?里中將防抖做到極致呢,下面小編就來和大家詳細(xì)講講
    2023-10-10
  • vue3使用Pinia修改state的三種方法(直接修改,$patch,actions)

    vue3使用Pinia修改state的三種方法(直接修改,$patch,actions)

    Vue3?Pinia是一個(gè)狀態(tài)管理庫,專門為Vue3設(shè)計(jì)優(yōu)化,它提供了一種簡單而強(qiáng)大的方式來管理應(yīng)用程序的狀態(tài),并且與Vue3的響應(yīng)式系統(tǒng)緊密集成,本文給大家介紹了vue3使用Pinia修改state的三種方法,需要的朋友可以參考下
    2024-03-03
  • Element Breadcrumb 面包屑的使用方法

    Element Breadcrumb 面包屑的使用方法

    這篇文章主要介紹了Element Breadcrumb 面包屑的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Vue簡介、引入、命令式與聲明式編程詳解

    Vue簡介、引入、命令式與聲明式編程詳解

    原生開發(fā)和Vue開發(fā)的模式和特點(diǎn),我們會(huì)發(fā)現(xiàn)是完全不同的,這里其實(shí)涉及到兩種不同的編程范式:命令式編程和聲明式編程,下面這篇文章主要給大家介紹了關(guān)于Vue簡介、引入、命令式與聲明式編程的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • Vue axios與Go Frame后端框架的Options請求跨域問題詳解

    Vue axios與Go Frame后端框架的Options請求跨域問題詳解

    這篇文章主要介紹了Vue axios與Go Frame后端框架的Options請求跨域問題詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • elementUI下拉框?qū)崿F(xiàn)隱藏時(shí)觸發(fā)相關(guān)事件方式

    elementUI下拉框?qū)崿F(xiàn)隱藏時(shí)觸發(fā)相關(guān)事件方式

    這篇文章主要介紹了elementUI下拉框?qū)崿F(xiàn)隱藏時(shí)觸發(fā)相關(guān)事件方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • 在 Vue.js中優(yōu)雅地使用全局事件的方法

    在 Vue.js中優(yōu)雅地使用全局事件的方法

    這篇文章主要介紹了在 Vue.js中優(yōu)雅地使用全局事件的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • 為Vue3?組件標(biāo)注?TS?類型實(shí)例詳解

    為Vue3?組件標(biāo)注?TS?類型實(shí)例詳解

    這篇文章主要為大家介紹了為Vue3?組件標(biāo)注?TS?類型實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08

最新評(píng)論

黄大仙区| 蒲城县| 西青区| 宁海县| 宁津县| 都安| 石首市| 噶尔县| 秦安县| 昌邑市| 望江县| 河间市| 呈贡县| 都匀市| 营口市| 左贡县| 吉林省| 桐梓县| 五河县| 甘洛县| 安徽省| 石泉县| 万宁市| 石林| 曲麻莱县| 惠水县| 镇赉县| 襄城县| 常宁市| 师宗县| 黔江区| 广水市| 鞍山市| 绥棱县| 宣威市| 莲花县| 青岛市| 东台市| 麻栗坡县| 烟台市| 久治县|