# vue学习 **Repository Path**: lixuanye/vue-learning ## Basic Information - **Project Name**: vue学习 - **Description**: vite+vue3.2+element-plus+vue-router+vuex+typescript - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-08 - **Last Updated**: 2026-03-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vue 3 + TypeScript + Vite 初学 ## 1.新建Vite项目 1.1 cmd进入html根目录 1.2 键入npm create vite 1.3 设置完成后vscode进入项目目录,下载依赖 npm install 1.4 Vscode插件需要使用Volar高亮,更好支持 1.5 vite配置体验:vite.config.ts ↓↓↓↓ export default defineConfig({ //设置前端端口号 server:{ port:7777 }, resolve:{ alias:{ // 替代语法,可以把src\xxxx 换成@\xxxx "@":path.resolve(__dirname,"src"), // 替代语法,可以把src/components 换成com "com":path.resolve(__dirname,"src/components") } }, plugins: [vue()] }) ## 2.ts setup语法糖体验 2.1 不用语法糖之前 使用语法糖之后,精简大部分语句 2.2 父子模块传递参数使用默认 const props = withDefaults( defineProps<{ msg: string, aList: Array }>(),{ msg:"hello,default", aList:()=>[1,2] } ) 不用默认模式写法 defineProps<{ msg: string, aList: Array }>() 2.3 子模块手动操作传递数据到父模块 defineEmit ## 3.vue-router路由,Vue3.2中用vue4x 3.1 npm install vue-router@next //或者@4 3.2 src下新建/router/index.ts,在ts中初始化路由信息: ```typescript import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' const routes: Array = [ { path: '/', component: () => import('../components/HelloWorld.vue') } ] const router = createRouter({ history: createWebHistory(), routes:routes }) export default router ``` main.ts下添加router,用.use(router)注册到界面 ```typescript import { createApp } from 'vue' import './style.css' import App from './App.vue' import router from './router' createApp(App).use(router).mount('#app') ``` ## 4.VueX安装 4.1 VueX:全局属性变量集中地,跳出各种父子兄弟模块调用问题,一次定义多处使用 4.2 VueX安装:npm i vuex@next 4.3 VueX初体验案例一:count++按钮。 (1)src中新建/store/index.ts ```typescript import { createStore } from "vuex"; //定义接口 interface State { count:number } //建立全局属性和函数 // export const store = createStore ({ state(){ return{ count:0 } }, mutations:{ increment(state){ state.count++ } } }) ``` # 5.ElementPlus 5.1 安装ElementPlus: npm i element-plus --save 安装sass: npm i sass-loader sass -D 5.2 按需自动导入elementplus **强烈推荐使用**:安装npm i -D unplugin-vue-components unplugin-auto-import 根据elementPlus官方文档,粘贴缺少内容 ```typescript // vite.config.ts import { defineConfig } from 'vite' //以下为所需引入 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: [ vue(), // ... //下列为所需引入 AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], }) ```