首页 > 其他分享 >vite+vue3+ts+elementPlus前端框架搭建 [一]

vite+vue3+ts+elementPlus前端框架搭建 [一]

时间:2023-08-02 12:24:06浏览次数:32  
标签:vue App vue3 ts elementPlus pnpm import router

记录下搭建vite + vue3 + ts + elementPlus项目的过程及遇到的问题。

建议使用pnpm安装依赖,npm切换到pnpm 链接地址:[https://www.pnpm.cn/installation]()

 

1. 运行环境

node -v  
v18.17.0  
npm -v
9.8.1

2. 使用pnpm创建vite项目及安装依赖

npm init vite-app   
pnpm create vite  
√ Project name: ... acui  
√ Select a framework: » Vue  
√ Select a variant: » TypeScript  
进入项目目录  
cd   
安装相关依赖  
pnpm i
启动项目  
pnpm dev  
 

3. 安装sass、eslint、router、pinia、axios、element-plus、vueuse/core插件

pnpm i sass -D
pnpm i eslint -D
pnpm i vue-router@4
pnpm i pinia
pnpm i axios
pnpm i element-plus -S  
pnpm i @vueuse/core

pnpm install xxx -S 生产环境的所需依赖

pnpm install xxx -D 开发和测试所需的依赖

4. 配置路由,首页设置

在src目录下新建router文件夹,并在router下新建index.ts进行路由配置。在src目录下创建views/index.vue

import * as VueRouter from "vue-router";
const routes = [
  {
    path: "/",
    component: () => import("../views/index.vue"),
  },
];
export default VueRouter.createRouter({
  history: VueRouter.createWebHashHistory(),
  routes,
});

如果提示:此时报错,找不到模块“***.vue”或去相应的类型声明

解决方案: src文件夹下创建shims-vue.d.ts,使ts文件能够识别.vue类型的文件

declare module "*.vue" {
  import { App, defineComponent } from "vue";
  const component: ReturnType & {
    install(app: App): void;
  };
  export default component;
}  

index.vue 内容如下:

<template>
  <div>
    <h5>{{ msg }}</h5>
  </div>
</template>
<script lang="ts" setup>
import { ref } from "vue";
interface State {
  msg: string;
}
const msg = ref("我是Home.vue");
</script>

5. main.ts引入并注入相关模块


import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus from "element-plus"
import router from "./router"
import "element-plus/dist/index.css"
import './style.css'
const app = createApp(App)
app.use(ElementPlus).use(router).mount('#app')

6. App.vue添加渲染视图组件

<template>;
  <router-view></router-view>
</template>
<script>
export default {
  name: "App",
};
</script>

7. 重新启动项目

pnpm dev

标签:vue,App,vue3,ts,elementPlus,pnpm,import,router
From: https://www.cnblogs.com/fuyu-blog/p/17600284.html

相关文章

  • 【.NET6 + Vue3 + CentOS7.9 + Docker + Docker-Compose + SSL】个人博客前后端运维部
    个人博客前端:https://lujiesheng.cn个人博客后端:https://api.lujiesheng.cn个人博客运维:https://portainer.lujiesheng.cn1.服务器准备我采用的是腾讯云轻量应用服务器(2C4G8M80G),配置如下图:安装镜像选择CentOS7.664bit:2.服务器防火墙设置添加防火墙出入站规则......
  • slots
    插槽内容与出口在之前的章节中,我们已经了解到组件能够接收任意类型的JavaScript值作为props,但组件要如何接收模板内容呢?在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段。普通插槽:<buttonclass="fancy-btn"><slot></slot><!--插槽出......
  • This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错
    这是我们开启了bin-log,我们就必须指定我们的函数是否是1DETERMINISTIC不确定的2NOSQL没有SQl语句,当然也不会修改数据3READSSQLDATA只是读取数据,当然也不会修改数据4MODIFIESSQLDATA要修改数据5 CONTAINS SQL包含了SQL语句其中在function里面,只有DETERMINISTIC,......
  • 用Unity DOTS制作4万飞剑的太极剑阵!
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!一、演示效果由于DOTS相关Package不同版本变动很大,许多老的教程也已经过时,给想要探索的小伙伴制造了不少麻烦。所以我便尝试用DOTS制作了这样一个由......
  • requests--post中json中文编码问题
    问题requestspost提交json数据时,默认在库中ensure_ascii为True。会对中文进行unicode编码。但是有的时候服务端并没有处理中文,没有进行解码,而我们又改不了服务端,就会出现问题!解决修改库的代码,添加上对应的ensure_ascii参数。不推荐,换个环境就用不了了。推荐:自己......
  • react中简单使用echarts图表
    1:下载echarts-for-react插件2:组件内引入importReactEchatrsfrom'echarts-for-react'复制echarts官网图表的option例如:柱形图的option react组件内定义函数存放复制的option并返回importReactfrom'react';importReactEchatrsfrom'echarts-for-react'impor......
  • bootstart
    今日内容详细文档处理#js中创建一个节点vara=document.createElement('a');<script>letp=$('<p>')//在jQuery中创建一个标签p.text("hello")//在标签对象中添加文本p.attr("id","d1")//对标签对象设置id$("body......
  • ts中的泛型
    在TypeScript中我们会使用泛型来对函数的相关类型进行约束这里的函数同时包含class的构造函数因此一个类的声明部分也可以使用泛型那么什么是泛型?如果通俗的理解泛型呐?什么是泛型泛型(Generics)是指在定义函数接口或类的时候不预先指定具体的类型而在使用......
  • vue3路由的两种引入方式useRouter和router进行页面跳转
    1.在vue3中有两种路由的引入方式第一种import{useRouter}from'vue-router'constuse_router=useRouter()use_router.push('/pathName')第二种importrouterfrom'@/router'router.push('/pathName') 2.两种方式的区别2.1.第一种方式的使用位置在vue......
  • Flutter中关于initState()方法注意点
    在Flutter中,initState方法是StatefulWidget的生命周期方法之一,它在创建对应的State对象并插入到树中时被调用。具体来说,initState方法在以下情况下被调用:当一个StatefulWidget第一次被插入到树中时,对应的State对象会被创建,并且initState方法会立即被调用。如果Sta......