国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)

這篇具有很好參考價(jià)值的文章主要介紹了Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

引言

手動(dòng)安裝配置Vue3 ElementPlus模板比較繁瑣,網(wǎng)上尋找一些模板不太符合自己預(yù)期,因此花點(diǎn)精力搭建一個(gè)符合自己需求的架子

采用最新的組件,版本如下:

  • vite 4.3.9
  • vite-plugin-mock 2.9.8
  • vue 3.3.4
  • pinia 2.1.3
  • vue-router 4.2.2
  • element-plus 2.3.6

滿足自己以下功能:

  • Vite工具熱啟動(dòng)速度快,修改后編譯時(shí)間短(個(gè)人喜好)
  • element-plus 組件豐富,適合快速開發(fā)
  • 基本路由功能(vue-router官方推薦,配置也較簡(jiǎn)單)
  • vite-plugin-mock,方便快速模擬接口返回?cái)?shù)據(jù),這個(gè)功能比較方便

AntDesignVue組件也比較豐富,后面考慮再搭建一個(gè)AntDesignVue的版本

實(shí)現(xiàn)效果如下

Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)

功能設(shè)計(jì)

vue-router4

自動(dòng)在路由前和后添加NProgress動(dòng)畫效果
如下圖在頂部加上一個(gè)進(jìn)度條顯示加載進(jìn)度

Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)

import { createRouter, createWebHashHistory } from 'vue-router'
import NProgress from '~/utils/nprogress'

export const router = createRouter({
    history: createWebHashHistory(),
    routes: [
        {
            path: '/',
            name: 'Root',
            redirect: '/home'
        },
        {
            path: '/home',
            name: 'Home',
            meta: {
                title: '主頁'
            },
            component: () => import('~/views/Home.vue'),
            children: []
        },
        {
            path: '/about',
            name: 'About',
            meta: {
                title: '關(guān)于'
            },
            component: () => import('~/views/About.vue'),
            children: []
        }
    ],
    strict: true,
    scrollBehavior: () => ({ left: 0, top: 0 })
})

router.beforeEach(() => {
    if (!NProgress.isStarted()) {
        NProgress.start()
    }
})

router.afterEach(() => {
    NProgress.done()
})

vite-plugin-mock

這里有個(gè)坑,最新的3.0版本,按照官方配置一直報(bào)錯(cuò),退回到2.9.8正常

1.修改vite.config.ts

import { viteMockServe } from 'vite-plugin-mock'

// https://vitejs.dev/config/
export default defineConfig({
    /****/
    plugins: [vue(), viteMockServe({ mockPath: './mock', localEnabled: true })],
    /****/
})

2.根目錄下面添加mock文件夾,新建index.ts

目錄結(jié)構(gòu)如下
├── index.html
├── mock
│   └── index.ts
├── src
......
├── tsconfig.json
├── tsconfig.node.json
└── vite.config.ts

這里模擬了兩個(gè)路由

// index.ts
import { MockMethod } from 'vite-plugin-mock'
export default [
    {
        url: '/api/test',
        method: 'get',
        response: ({}) => {
            return {
                code: 0,
                data: {
                    name: 'leo'
                }
            }
        }
    },
    {
        url: '/api/table',
        method: 'get',
        response: ({}) => {
            return {
                code: 0,
                data: [
                    { name: 'vue3' },
                    { name: 'vite' },
                    { name: 'vue-router4' },
                    { name: 'pinia' },
                    { name: 'vite-mock' }
                ]
            }
        }
    }
] as MockMethod[]

pinia

按官網(wǎng)定義一個(gè)counterstore分別在home.vueabout.vue兩個(gè)頁面使用

Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)

import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
    state: () => {
        return { count: 0 }
    },
    actions: {
        increment() {
            this.count++
        }
    }
})

Axios封裝

所有請(qǐng)求{code:0, data: xxxxxxx ,msg:''}格式
有報(bào)錯(cuò)使用ElMessage提示

import axios, { AxiosResponse } from 'axios'
import ElMessage from 'element-plus/lib/components/message/index.js'

// 創(chuàng)建 axios 實(shí)例
const service = axios.create({
    //   baseURL: "/api",
    timeout: 50000,
    headers: { 'Content-Type': 'application/json;charset=utf-8' }
})

// 響應(yīng)攔截器
service.interceptors.response.use(
    (response: AxiosResponse) => {
        const { code, msg } = response.data
        if (code === 0) {
            return response.data
        }
        ElMessage(msg || '系統(tǒng)出錯(cuò)')
        if (code === 401) {
            ElMessage.warning('會(huì)話過期,請(qǐng)重新登陸!')
            window.location.href = '/'
        }
        ElMessage.error(msg || 'Error')
        return Promise.reject(new Error(msg || 'Error'))
    },
    (error: any) => {
        ElMessage.error(error.message || '系統(tǒng)出錯(cuò)')
        return Promise.reject(error.message)
    }
)

// 導(dǎo)出 axios 實(shí)例
export const request = service

TODO

根據(jù)需求添加登錄功能、動(dòng)態(tài)獲取權(quán)限路由信息
創(chuàng)建AntDesignVue分支

項(xiàng)目地址

https://gitee.com/leobest2/my-vue3-template文章來源地址http://www.zghlxwxcb.cn/news/detail-473733.html

到了這里,關(guān)于Vue3 Vite4 ElementPlus TS模板(含Vue-Router4+Pinia4)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vite4+Typescript+Vue3+Pinia 從零搭建(5) - 路由router

    Vite4+Typescript+Vue3+Pinia 從零搭建(5) - 路由router

    項(xiàng)目代碼同步至碼云 weiz-vue3-template Vue Router 是 Vue.js 的官方路由。它與 Vue.js 核心深度集成,讓用 Vue.js 構(gòu)建單頁應(yīng)用變得輕而易舉。 在 src/view 下新建 home.vue 和 login.vue ,內(nèi)容如下: login.vue 里修改下對(duì)應(yīng)name即可 index.ts 作為路由入口, static.ts 作為靜態(tài)路由, modules 內(nèi)還可以

    2024年02月05日
    瀏覽(100)
  • vue3+vite+ts+elementplus創(chuàng)建項(xiàng)目

    # vue3+vite+ts+pinia 學(xué)習(xí)筆記 ## 1、創(chuàng)建項(xiàng)目: npm init vite@latest ? ? 選擇: vue、ts ## 2、進(jìn)入項(xiàng)目目錄后:npm install 安裝 ## 3、運(yùn)行項(xiàng)目: npm run dev ## 4、安裝常用插件: ? ? 1、安裝 npm install vue-router@latest 配置:在src目錄下新建router目錄,創(chuàng)建index.ts文件代碼如下: ? ? ? ```javascript 創(chuàng)建

    2024年02月09日
    瀏覽(19)
  • Vue3+vite搭建基礎(chǔ)架構(gòu)(6)--- 使用vue-router

    Vue3+vite搭建基礎(chǔ)架構(gòu)(6)--- 使用vue-router

    這里記錄下自己在Vue3+vite的項(xiàng)目使用vue-router的過程,不使用ts語法,方便以后直接使用。這里承接自己的博客Vue3+vite搭建基礎(chǔ)架構(gòu)(5)— 使用vue-i18n這篇博客,在該博客項(xiàng)目的基礎(chǔ)上增加使用vue-router。 Vue3使用vue-router官方文檔:https://router.vuejs.org/zh/installation.html 根據(jù)官網(wǎng)給

    2024年02月21日
    瀏覽(25)
  • Vite4+Typescript+Vue3+Pinia 從零搭建(2) - ts配置

    項(xiàng)目代碼同步至碼云 weiz-vue3-template 關(guān)于tsconfig的配置字段可查看其他文檔,如 typeScript tsconfig配置詳解 文件修改如下: 修改文件如下: 新建文件夾 types ,用來存放類型定義。比如新建 index.d.ts : 后續(xù)也可以新增其他文件,比如 global.d.ts 存放全局定義, router.d.ts 存放路由定

    2024年02月05日
    瀏覽(102)
  • vue3+vite+pinia+vue-router+ol項(xiàng)目創(chuàng)建及配置

    vue3+vite+pinia+vue-router+ol項(xiàng)目創(chuàng)建及配置

    vite官網(wǎng) 注意:兩種方式創(chuàng)建目錄結(jié)構(gòu)一致 方式一:vite創(chuàng)建腳手架命令: 命令行:npm create vite@latest 然后選擇 方式二:命令行直接聲明帶上vue 定義:pinia是一個(gè)是Vue官方團(tuán)隊(duì)推薦代替Vuex的一款輕量級(jí)狀態(tài)管理庫。 pinia官網(wǎng)中文文檔 命令行:yarn add pinia 或者 npm i pinia vue-rou

    2024年02月16日
    瀏覽(125)
  • 超級(jí)詳細(xì) 最新 vite4+vue3+ts+element-plus+eslint-prettier 項(xiàng)目搭建流程

    系列文章目錄 【element-plus】 table表格每行圓角解決方案 element也通用 【Vue3+Vite+Ts+element-plus】使用tsx實(shí)現(xiàn)左側(cè)欄菜單無限層級(jí)封裝 超級(jí)詳細(xì)GitBook和GitLab集成步驟【linux環(huán)境】 1.1、項(xiàng)目創(chuàng)建 執(zhí)行以下代碼將vite將會(huì)自動(dòng)生成初始的 vite4+vue3+ts的項(xiàng)目模板,pnpm、npm、yarn 選擇一種執(zhí)

    2024年02月04日
    瀏覽(25)
  • 【退役之重學(xué)前端】使用vite+vue3+vue-router,重構(gòu)react+react-router前后端分離的商城后臺(tái)管理系統(tǒng)

    前言: 對(duì)前端各個(gè)技術(shù)板塊,HTML、CSS、JavaScript、ES6、vue家族,整體上能“摸其大概”。筆者計(jì)劃重構(gòu)一個(gè)基于react的商城后臺(tái)管理系統(tǒng)。 —— 2024年2月16日 vue3 sass bootstrap ES7 前后端分離 分層架構(gòu) 模塊化開發(fā) npm vite git

    2024年02月20日
    瀏覽(25)
  • vue3框架Vite + vue Router + ts 登錄后返回上一頁或首頁

    vue3框架Vite + vue Router + ts 登錄后返回上一頁或首頁

    項(xiàng)目(Vue3):Vite + vue Router + ts 登錄后跳轉(zhuǎn)情況: ① 項(xiàng)目中有些頁面是需要登錄后才可以訪問的,如果沒有登錄的情況下,訪問該頁面會(huì)自動(dòng)跳轉(zhuǎn)到登錄頁,完成登錄操作后,需要再次返回到該頁面 ② 如果直接訪問登錄頁,登錄后跳轉(zhuǎn)到首頁 訪問頁面時(shí),進(jìn)行限制,除了部分

    2024年02月04日
    瀏覽(43)
  • 基于uniapp+vite4+vue3搭建跨端項(xiàng)目|uni-app+uview-plus模板

    基于uniapp+vite4+vue3搭建跨端項(xiàng)目|uni-app+uview-plus模板

    最近得空學(xué)習(xí)了下uniapp結(jié)合vue3搭建跨端項(xiàng)目。之前也有使用uniapp開發(fā)過幾款聊天/仿抖音/后臺(tái)管理等項(xiàng)目,但都是基于vue2開發(fā)。隨著vite.js破局出圈,越來越多的項(xiàng)目偏向于vue3開發(fā),就想著uniapp搭配vite4.x構(gòu)建項(xiàng)目效果會(huì)如何?經(jīng)過一番嘗試果然真香~ uniapp官網(wǎng)提供了? HBuild

    2024年02月09日
    瀏覽(94)
  • rouyi-vue-pro+vue3+vite4+Element Plus項(xiàng)目中使用生成Vue2+Element UI標(biāo)準(zhǔn)模板

    rouyi-vue-pro+vue3+vite4+Element Plus項(xiàng)目中使用生成Vue2+Element UI標(biāo)準(zhǔn)模板

    運(yùn)行一個(gè)pro-vue3的前端項(xiàng)目,以及后端服務(wù) 在基礎(chǔ)設(shè)施-代碼生成模塊中選擇某張數(shù)據(jù)庫表導(dǎo)入,并編輯生成信息,前端類型:Vue2+Element UI標(biāo)準(zhǔn)模板 在vue3項(xiàng)目中創(chuàng)建一個(gè)vue文件 1.4 srcapitest.js Vue2+Element UI標(biāo)準(zhǔn)模板生成的前端封裝好的request請(qǐng)求接口對(duì)象 1.5 報(bào)錯(cuò) 問題 :在 更新

    2024年02月03日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包