位置: IT常识 - 正文

详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia)(vue3.0创建)

编辑:rootadmin
详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia) vite创建vue3+ts项目

推荐整理分享详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia)(vue3.0创建),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:创建vue实例几种方法,vite vue-cli,vue 创建,vue 创建,创建vue3.0项目的命令,vue3.0创建,vite搭建vue3,创建vue3项目的步骤,内容如对您有帮助,希望把文章链接给更多的朋友!

为何选择vite: vite 是一个基于 Vue3 单文件组件的非打包开发服务器,它做到了本地快速开发启动:

快速的冷启动,不需要等待打包操作; 即时的热模块更新,替换性能和模块数量的解耦让更新飞起; 真正的按需编译,不再等待整个应用编译完成,这是一个巨大的改变。(平均一秒run)

本文技术栈是vue3+vue-router+ts+vite+element-plus+pinia。

初始化项目 (1)在需要创建位置cmd目录下执行npm init vite@latest

(2)输入项目名称 (3)选择vue((有时出现上下键不能选择,手动输入选项回车就行)) (4)选择vue-ts(或者是选择语言,选TypeScript) (5)此时已经创建完毕 2. 安装默认依赖 可直接根据上图提示执行操作 (1)进入刚刚创建的文件目录

cd vite-vue3

(2)安装默认依赖 此处切换npm源,安装更快

#查看当前源npm config get registry#更换为国内镜像npm config set registry=http://registry.npm.taobao.org/

然后开始安装

npm install

(3)最后运行查看是否正常打开,在文件根目录下 npm run dev 如下图最终返回一个本地地址,输入浏览器访问,能打开就没问题了(此处有提示Network:use–host to expose,该问题可在后面配置中解决,解决后再运行会多出几个局域网访问网址,这样只要和你在一个局域网的人都能通过地址访问你的页面了)

初始配置

此处选用vscode进行编写代码,值得注意的是vue3中使用vscode的插件时需要禁用以前vue2常使用的插件Vetur,而安装Vue Language Features (Volar)插件。不然代码会提示报错。

项目创建成功后需要进行一些常规简单配置。(配置很多,需要研究可自己再研究一下)下面进行简单基础配置:

(注意:下面安装的所有项目依赖包(都在根目录下安装),我的是这一层,可在vs打开的项目里新建控制台面板进行安装(注意路径即可),也可在cmd面板操作)

配置所需依赖:

npm install @types/node --save-dev详细vite创建vue3项目(vue3+vue-router+ts+vite+element-plus+pinia)(vue3.0创建)

修改vite.config.ts配置文件代码

import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import { resolve } from 'path'export default defineConfig({ plugins: [vue()], //解决“vite use `--host` to expose” base: './',//不加打包后白屏 server: { host: '0.0.0.0', // port: 8080, open: true }, resolve:{ //别名配置,引用src路径下的东西可以通过@如:import Layout from '@/layout/index.vue' alias:[ { find:'@', replacement:resolve(__dirname,'src') } ] }})安装路由npm install vue-router@4

(1)在src目录下新建router文件夹,在router里创建index.ts文件 (2)index.ts中配置路由 下面@引入方式会报错,原因是还没配置,后面第7步会配置,此处错误可以先不管。

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'import Layout from '../components/HelloWorld.vue'const routes: Array<RouteRecordRaw> = [ { //路由初始指向 path: '/', name: 'HelloWorld', component:()=>import('../components/HelloWorld.vue'), }]const router = createRouter({ history: createWebHistory(), routes})export default router

(3)main.ts中导入挂载路由

import { createApp } from 'vue'import './style.css'import App from './App.vue'import router from './router'const app = createApp(App);app.use(router).mount('#app')

(4)修改App.vue管理路由

<script setup lang="ts"></script><template> <router-view></router-view></template><style></style>

(5)可以保存后,运行看是否报错。如图打开了路由指向的HelloWorld.vue页面的内容就对了

配置ts文件采用@方式导入 在tsconfig.json文件中添加配置(下图打注释的都是添加的,也可自己丰富) 配置完成后建议重新run一下{ "compilerOptions": { "target": "esnext", "useDefineForClassFields": true, "module": "esnext", "moduleResolution": "node", "strict": true, "jsx": "preserve", "sourceMap": true, "resolveJsonModule": true, "isolatedModules": true, "esModuleInterop": true, "lib": ["esnext", "dom"], "skipLibCheck": true, //添加--- "suppressImplicitAnyIndexErrors": true,//允许字符串用作下标 "ignoreDeprecations":"5.0", "baseUrl": ".", "paths": { "@/*":[ "src/*" ] } //--------- }, "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], "references": [{ "path": "./tsconfig.node.json" }], //添加 "exclude":["node_modules"]// // ts排除的文件}

7.安装代码检测工具(建议) 为了保证代码质量,添加代码检测

npm install --save-dev eslint eslint-plugin-vue

(1)在根目录创建.eslintrc.js文件 (2)复制代码 在rules可以添加自己的验证规则

module.exports = {root: true,parserOptions: {sourceType: 'module'},parser: 'vue-eslint-parser',extends: ['plugin:vue/vue3-essential', 'plugin:vue/vue3-strongly-recommended', 'plugin:vue/vue3-recommended'],env: {browser: true,node: true,es6: true},rules: {'no-console': 'off','comma-dangle': [2, 'never'] //禁止使用拖尾逗号}}css 预处理器 sass(看习惯)npm install -D sass sass-loader

css时使用就行,也可不要,看习惯

<style scoped lang="scss">.read-the-docs { color: #888;}</style>引入element-plus element-plus是vue3目前大流行组件库,用法基本和element ui一样npm install element-plus --save

(1)main.ts中引入

import { createApp } from 'vue'import './style.css'import App from './App.vue'import router from './router'import ElementPlus from 'element-plus'import 'element-plus/dist/index.css'import * as ElementPlusIconsVue from '@element-plus/icons-vue'import zhCn from "element-plus/lib/locale/lang/zh-cn";//国际化const app = createApp(App);app.use(ElementPlus, { locale: zhCn }).use(router).mount('#app')//全局注册图标组件for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component)}

(2)使用element plus组件 清除原有Helloworld.vue内容,添加element-plus按钮

<template> <el-button type="primary" size="default" :icon='Plus'>新增</el-button></template><script setup lang="ts">import {Plus} from '@element-plus/icons-vue';</script><style scoped lang="scss"></style>

运行如下图 ,命令行输入

npm run dev

安装pinia(状态管理,类似vue2中的vuex)npm install pinia

Pinia 是 Vue 的存储库,它允许您跨组件/页面共享状态,组件通信。vue3推荐。文末有入门链接,很详细步奏使用pinia

全局引入pinia

import { createApp } from 'vue'import './style.css'import App from './App.vue'import router from './router'import ElementPlus from 'element-plus'import 'element-plus/dist/index.css'import * as ElementPlusIconsVue from '@element-plus/icons-vue'import zhCn from 'element-plus/dist/locale/zh-cn.mjs' //国际化import { createPinia } from 'pinia'const app = createApp(App);// 实例化 Piniaconst pinia = createPinia()app.use(ElementPlus,{locale: zhCn}).use(router).use(pinia).mount('#app')//全局注册图标组件for (const [key, component] of Object.entries(ElementPlusIconsVue)) { app.component(key, component)}

开发提示:

上面代码引用了默认的style.css文件(引用位置main.ts中),可能里面样式对我们开发有干扰,可自行处理修改style.css默认样式。建议:全删除,自己设置html,body,#app样式。以下参考可自行发挥:*{ margin: 0; padding: 0;}html,body,#app { width: 100%; height: 100%;}路径在src下的可以用@符号引用import SysDialog from '@/components/SysDialog.vue';

到此一个基本的vue3项目框架就搭好了。欢迎指正 需要入门pinia的,传送门:pinia 0基础入门

本文链接地址:https://www.jiuchutong.com/zhishi/295291.html 转载请保留说明!

上一篇:HTML表格合并行和列(html表单合并行)

下一篇:K8s超详细安装部署流程(k8s安装步骤)

  • iqoo8怎么添加小窗应用(iqoo8怎么添加小窗口)

    iqoo8怎么添加小窗应用(iqoo8怎么添加小窗口)

  • oled是什么意思啊(手机屏幕材质amoled是什么意思)

    oled是什么意思啊(手机屏幕材质amoled是什么意思)

  • 荣耀x10max能支持内存卡吗(荣耀x10max支持90hz吗)

    荣耀x10max能支持内存卡吗(荣耀x10max支持90hz吗)

  • 抖音直播音浪怎么看不到(抖音直播音浪怎么赚钱)

    抖音直播音浪怎么看不到(抖音直播音浪怎么赚钱)

  • vip抢票一定能抢到吗(vip抢票一次多少钱)

    vip抢票一定能抢到吗(vip抢票一次多少钱)

  • 佳能打印机三角黄灯闪(佳能打印机三角黄灯和黑色墨盒一直闪)

    佳能打印机三角黄灯闪(佳能打印机三角黄灯和黑色墨盒一直闪)

  • 手机视频没有声音是怎么回事(手机视频没有声音怎么回事儿)

    手机视频没有声音是怎么回事(手机视频没有声音怎么回事儿)

  • 华为nova7多重(nova7多重)

    华为nova7多重(nova7多重)

  • 多屏协同是什么意思(多屏协同有用吗)

    多屏协同是什么意思(多屏协同有用吗)

  • iphone xs是不是2k分辨率(苹果xs是2k还是1080p屏幕)

    iphone xs是不是2k分辨率(苹果xs是2k还是1080p屏幕)

  • iphone 6有nfc功能吗(iphone 6有没有nfc)

    iphone 6有nfc功能吗(iphone 6有没有nfc)

  • 苹果手机安全中心在哪里(苹果手机安全中心图标)

    苹果手机安全中心在哪里(苹果手机安全中心图标)

  • 酷狗音乐包下载的音乐可以永久听吗(酷狗音乐包下载到U盘是永久的吗)

    酷狗音乐包下载的音乐可以永久听吗(酷狗音乐包下载到U盘是永久的吗)

  • 电脑中间有一竖线怎么回事(电脑中间有一竖线怎么去掉)

    电脑中间有一竖线怎么回事(电脑中间有一竖线怎么去掉)

  • 关闭共同关注是什么意思(关闭共同关注功能别人能否看到我的关注)

    关闭共同关注是什么意思(关闭共同关注功能别人能否看到我的关注)

  • 变频的意思和作用(变频的作用和原因)

    变频的意思和作用(变频的作用和原因)

  • 为什么在快手设置里找不到我的钱包(为什么在快手设置的壁纸没有声音)

    为什么在快手设置里找不到我的钱包(为什么在快手设置的壁纸没有声音)

  • 联想小新air和小新pro的区别(联想小新air和小米时尚鼠标)

    联想小新air和小新pro的区别(联想小新air和小米时尚鼠标)

  • vivo手机照相显示日期(vivo手机照相显示摄像头被占用)

    vivo手机照相显示日期(vivo手机照相显示摄像头被占用)

  • 手机号能注销吗(有副卡的手机号能注销吗)

    手机号能注销吗(有副卡的手机号能注销吗)

  • vue慢动作怎么拍(vue视频特效怎么弄的)

    vue慢动作怎么拍(vue视频特效怎么弄的)

  • 电脑ie浏览器升级步骤(电脑ie浏览器升级后变microftedge)

    电脑ie浏览器升级步骤(电脑ie浏览器升级后变microftedge)

  • 小米手环监控睡眠原理(小米手环监控睡觉能用吗)

    小米手环监控睡眠原理(小米手环监控睡觉能用吗)

  • 小米8飞行模式在哪(小米飞行模式在哪里设置)

    小米8飞行模式在哪(小米飞行模式在哪里设置)

  • qq的自动回复怎么弄操作流程(qq的自动回复怎么弄)

    qq的自动回复怎么弄操作流程(qq的自动回复怎么弄)

  • 拼多多商家版提示音怎么设置(拼多多商家版提现)

    拼多多商家版提示音怎么设置(拼多多商家版提现)

  • qq闺蜜关系怎么绑定(qq闺蜜关系怎么调日期)

    qq闺蜜关系怎么绑定(qq闺蜜关系怎么调日期)

  • 大麦如何快速抢票(大麦怎样抢票成功率高)

    大麦如何快速抢票(大麦怎样抢票成功率高)

  • 企业所得税减免优惠政策
  • 递延所得税资产和负债怎么理解
  • 一般纳税人差额征税申报表怎么填
  • 企业为什么要进行环境分析
  • 非货币性资产含义
  • 营改增抵减的销项税额是什么意思
  • 生产中材料的合理损耗核算
  • 缴纳土地增值税
  • 用于购买固定资产的账户
  • 固定性制造费用成本差异是
  • 持有至到期投资属于什么科目
  • 完成税务登记之后多久开始报个税?
  • 企业店铺开发票可以要求补税点吗?
  • 增值税普通发票查询真伪
  • 增值税和消费税申报对比不符怎么处理
  • 一般纳税人当月只有进项没有销项怎么做账
  • 小规模红字发票怎么做账务处理
  • 钢化玻璃税率是多少?
  • 税务三方协议一式几份
  • 制造业领用材料规章制度的好处
  • 来的货比合同金额多怎么申报印花税?
  • 抵扣进项税有期限吗
  • 企业筹建期发生的广告宣传费怎么抵减所得税
  • 未缴少缴税款追征期
  • 非一般纳税人可以抵扣吗
  • 以租代购算固定资产吗
  • dghm.exe是什么程序
  • 收到发票已入账,退回怎么做账
  • 总包和分包是什么关系
  • 财务报表怎么判断盈亏
  • 工程物资发生报废损毁
  • uniapp实战视频教程
  • 什么是非营利性养老机构
  • php登录注册整套源码
  • 基于车联网
  • opencv安装教程vs2019
  • php图片添加水印的方法
  • 企业年度预算编制流程
  • 先款还是先票
  • 织梦二次开发教程
  • 帝国cms移动端
  • 金税盘怎么添加电子发票票种
  • 商品流通企业的进货费用
  • 雇用残疾人税收优惠
  • 银行存款属于其他收益吗
  • 一般纳税人月销售额10万以下城建税
  • 内部往来借方是债权还是债务
  • 进项税额不允许抵扣
  • 存货 跌价
  • 网络服务费怎么入账
  • 印花税计入什么会计分录
  • 还银行贷款如何计算利息
  • 库存商品太多
  • 公司报销给个人的会计分录
  • 单位经办人给员工发工资
  • 如何查询公司的营业执照照片
  • 下列sql server语句中出现语法错误的是
  • sql判断是否存在记录
  • sql如何随机抽样
  • mysql查询结果输出
  • windows8使用教程
  • 高危禁止安装怎么解除
  • linux检查文件内容
  • windows xp 7 10
  • 如何把鼠标指针换成笔的形状
  • window怎么开启自动更新
  • linux文件权限的设置与修改
  • win10系统的pin码
  • win7激活2020
  • jquery移动节点的方法
  • win7系统安装环境
  • dom编程艺术这本书好吗
  • django pypy
  • fw开发
  • python27文件夹
  • javascript教程 csdn
  • 地税申报打印不了发票
  • 营业执照增加项目怎么办理
  • 企业税务情况查询
  • 开票系统红色预警情况说明怎么写
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设