<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
使用vite建立一個標準vue3+ts+pinia專案的實現範例
1、執行命令
yarn create vite my-vue-app --template vue-ts
3、cd my-vue-app //進入到專案
4、yarn // 安裝依賴
5、yarn dev // 執行專案
vite.config.ts
import path from 'path' // 需要安裝 @types/node 並在 tsconfig.node.json的compilerOptions中設定"allowSyntheticDefaultImports": true import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' function _resolve(dir) { return path.resolve(__dirname, dir); } // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], server:{ host: '0.0.0.0', // 監聽本地所有ip port: 3010 // 專案埠 }, resolve:{ alias:{ '@': _resolve('src') // 別名 } } })
1. 安裝pinia
yarn add pinia
2. 參照到專案
import { createApp } from 'vue' import App from './App.vue' import { createPinia } from 'pinia' // 匯入pinia const app = createApp(App) app.use(createPinia()) // 註冊pinia app.mount('#app')
3. 使用pinia Demo
// ./src/stores/counterStore.ts import { defineStore } from 'pinia', const useCounterStore = defineStore('counterStore', { state: () => ({ counter: 0 }) })
// setup中使用 import { useCounterStore } from '../stores/counterStore' export default { setup() { const counterStore = useCounterStore() return { counterStore } }, computed: { tripleCounter() { return counterStore.counter * 3 }, }, }
1. 安裝 router
yarn add vue-router
2. 如何使用
1). 建立router
// src/router/index.ts import { createRouter, createWebHashHistory, RouteRecordRaw } from "vue-router"; const routes: RouteRecordRaw[] = [ { path: '/login', // 瀏覽器存取地址 name: 'Login', component: () => import(/* webpackChunkName: "login"*/ new URL('../pages/Login/index.vue', import.meta.url).href ), mate:{} } ] const router = createRouter({ history: createWebHashHistory(), routes, }) export default router
2). 參照到專案
// main.ts import router from './router' app.use(router)
1. 首先需要安裝unplugin-auto-import和unplugin-vue-components兩個外掛
- unplugin-auto-import: 自動匯入api [github連結](https://github.com/antfu/unplugin-auto-import)
- unplugin-vue-components: 自動匯入使用的元件 [github連結](https://github.com/antfu/unplugin-vue-components)
yarn add unplugin-auto-import unplugin-vue-components -D
2. 設定 vite.cinfig.ts
import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' export default defineConfig({ plugins: [ // 自動匯入API方法 AutoImport({ imports: [ // 自動匯入API設定 'vue', 'vue-router', 'pinia', ], resolvers: [], // custom resolvers dts: 'src/typings/auto-imports.d.ts', // 匯入存放地址 }), // 自動匯入元件 Components({ resolvers: [], // custom resolvers dts: 'src/typings/components.d.ts', }), ] })
1. 先安裝依賴包
yarn add element-plus
2. 自動匯入樣式和元件
1). 首先你需要安裝unplugin-vue-components 和 unplugin-auto-import這兩款外掛
yarn add unplugin-vue-components unplugin-auto-import -D
2). 設定到vite
// vite.config.ts import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' export default defineConfig({ plugins: [ // 自動匯入 Element Plus 相關函數,如:ElMessage, ElMessageBox... (帶樣式) AutoImport({ resolvers: [ElementPlusResolver()], }), // 自動匯入 Element Plus 元件 Components({ resolvers: [ElementPlusResolver()], }), ], })
3. element-plus 圖示庫
1). 安裝依賴包
// 安裝包 yarn add @element-plus/icons-vue
2). 自動匯入icon元件設定
// 使用unplugin-icons和unplugin-auto-import自動從Iconify匯入任何圖示集合 yarn add unplugin-auto-import unplugin-icons -D
// vite.config.ts import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import AutoImport from 'unplugin-auto-import/vite' import Components from 'unplugin-vue-components/vite' import { ElementPlusResolver } from 'unplugin-vue-components/resolvers' // 自動匯入element圖示 import Icons from 'unplugin-icons/vite' import IconsResolver from 'unplugin-icons/resolver' import Inspect from 'vite-plugin-inspect' const path = require('path'); function _resolve(dir) { return path.resolve(__dirname, dir); } // https://vitejs.dev/config/ export default defineConfig({ plugins: [ vue(), // 自動匯入 Element Plus 相關函數,如:ElMessage, ElMessageBox... (帶樣式) AutoImport({ resolvers: [ ElementPlusResolver(), // 自動匯入圖示元件 IconsResolver({ prefix: 'Icon', }), ], dts: path.resolve(_resolve('src'), 'auto-imports.d.ts'), }), // 自動匯入 Element Plus 元件 Components({ resolvers: [ // 自動註冊圖示元件 IconsResolver({ enabledCollections: ['ep'], }), ElementPlusResolver()], }), Icons({ autoInstall: true, // 是否自動載入 }), Inspect(), ], server:{ host: '0.0.0.0', // 監聽本地所有ip port: 3010 // 專案埠 }, resolve:{ alias:{ '@': _resolve('src') // 別名 } } })
3). 使用方法
<template> <i-ep-add-location /> <IEpRefresh /> </template>
1. 安裝
yarn add sass sass-loader -D
2. 設定sass全域性變數
// vite.config.ts export default { css:{ preprocessorOptions: { scss: { additionalData: "@import './src/assets/css/mixin.scss';", }, }, } }
// 安裝prettier------------------------------------------------------------ yarn add prettier eslint-config-prettier eslint-plugin-prettier -D // 安裝eslint------------------------------------------------- yarn add eslint eslint-plugin-vue eslint-config-airbnb-base eslint-plugin-import @typescript-eslint/eslint-plugin @typescript-eslint/parser -D
2.根目錄新增.prettierrc.js檔案
// .prettierrc.js exports.modules = { // 設定強制單引號 singleQuote: true, autoFix: false, printWidth: 140, semi: false, trailingComma: "none", arrowParens: "avoid", endOfLine: "LF", };
3. 根目錄新增.eslintrc.js檔案
// .eslintrc.js module.exports = { env: { browser: true, es2021: true, }, extends: [ "plugin:vue/vue3-essential", "airbnb-base", "@vue/typescript/recommended", "@vue/prettier", "@vue/prettier/@typescript-eslint", ], parserOptions: { ecmaVersion: "latest", parser: "@typescript-eslint/parser", sourceType: "module", }, plugins: ["vue", "@typescript-eslint"], rules: { "vue/no-multiple-template-root": "off", // 關閉多根節點的校驗vue3可使用多個根節點 quotes: ["error", "single"], // 引號規則為:「單引號」,否則一律按照 「error」 處理(你也可以改成warn試一下) }, };
到此這篇關於vite建立一個標準vue3+ts+pinia專案的文章就介紹到這了,更多相關vite建立vue3+ts+pinia內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45