ToB企服应用市场:ToB评测及商务社交产业平台
标题:
前端项目搭建和基础配置
[打印本页]
作者:
西河刘卡车医
时间:
2025-1-18 11:30
标题:
前端项目搭建和基础配置
这个模块主要是介绍从零开始搭建项目的一些操纵,包含一些前端常用的配置,这里只是一部分,会在后续的文章中逐步进行补充和美满
一、创建项目
在项目路径下利用以下命令生成前后端项目
npm create vite
复制代码
输入项目名称,框架选择Vue,然后选择TypeScript
生成的项目执行以下命令进行运行
# 安装依赖
npm install
# 运行
npm run dev
复制代码
然后打开浏览器访问生成的地址,能打开如下页面即可
二、常用配置
1、设置打开启动服务后主动打卡浏览器
找到项目的package.json文件,修改启动脚本,增长–open参数,如下图,重启后即可主动打开浏览器页面
2、配置src项目目次别名
可以在引用组件过程中可以利用@进行引用,简化操纵,
起首安装对应的依赖组件
npm install @types/node
复制代码
然后在vite.config.ts配置文件中新增如下内容:
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
// https://vite.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src')
},
dedupe: [
'vue'
]
}
})
复制代码
在tsconfig.json文件中增长如下内容:
{
"files": [],
"references": [
// { "path": "./tsconfig.app.json" },
// { "path": "./tsconfig.node.json" }
],
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.vue"]
}
复制代码
vite-env.d.ts文件中增长如下内容:
// 配置这个文件是 解决错误:找不到模块“@/views/Login.vue”或其相应的类型声明。ts(2307)
// 这段代码告诉 TypeScript,所有以 .vue 结尾的文件都是 Vue 组件,可以通过 import 语句进行导入。这样做通常可以解决无法识别模块的问题。
declare module "*.vue" {
import { Component } from "vue";
const component: Component;
export default component;
}
复制代码
如下图所示,如果references中的内容报错,重启vscode即可
然后将APP.vue文件中引用的HelloWorld.vue改造成从@符号中读取,重启使命依然可以访问
3、添加路由组件
安装路由组件
npm install vue-router@4
复制代码
在项目src目次下新建router文件夹,并创建index.ts文件,并添加如下内容
import { createRouter, createWebHashHistory } from 'vue-router'
// createRouter方法用于创建路由实例,可以管理多个路由
export default createRouter({
history: createWebHashHistory(),
routes: [
// 路由页面内容
]
})
复制代码
在main.ts中注册路由组件
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
// 引入路由组件
import router from '@/router'
let app = createApp(App)
app.use(router)
app.mount('#app')
复制代码
测试路由功能,在src下新建两个文件夹,分别是home和about,并分别创建两个index.vue文件,内容任意写,区分开即可
home下的index.vue
<template>
<div>
这是Home页面
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
</style>
复制代码
about下的index.vue
<template>
<div>
这是about页面
</div>
</template>
<script setup lang="ts">
</script>
<style scoped>
</style>
复制代码
在路由配置中添加路由
import { createRouter, createWebHashHistory } from 'vue-router'
// createRouter方法用于创建路由实例,可以管理多个路由
export default createRouter({
history: createWebHashHistory(),
routes: [
// 路由页面
{
path: '/home',
component: () => import('@/home/index.vue')
},
{
path: '/about',
component: () => import('@/about/index.vue')
},
{
// 默认主页跳转路由
path: "/",
redirect: '/home'
}
]
})
复制代码
修改App.vue文件删除其他组件并添加路由组件
<template>
<div>
<router-view />
</div>
</template>
<script setup lang="ts"></script>
<style scoped></style>
复制代码
访问主页即可跳转到home页面
4、封装pinia
起首安装pinia
npm install pinia
复制代码
在src下新建store文件夹,并新建index.ts,代码内容如下:
import { createPinia } from "pinia";
export default createPinia();
复制代码
由于我们的store要分模块存储数据,因此在store文件夹下新建modules文件夹,新建一个user.ts文件来存放用户相干的数据,如下图所示
代码如下:
import { defineStore } from "pinia";
const useUserStore = defineStore('user', {
state: () => {
return {
}
},
actions: {
},
getters: {
},
})
export default useUserStore;
复制代码
5、封装操纵操纵token工具类util
安装js-cookie模块
npm install --save js-cookie
npm install --save @types/js-cookie
复制代码
在utils下新建auth.ts文件内容如下:
import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
export const getToken = () => {
return Cookies.get(TokenKey)
}
export const setToken = (token) => {
return Cookies.set(TokenKey, token)
}
export const removeToken = (token) => {
return Cookies.remove(TokenKey)
}
复制代码
如果上面的代码第一行Cookies报红,就在tsconfig.json 中设置 compilerOptions.esModuleInterop 为 true即可
{
"files": [],
"references": [
// { "path": "./tsconfig.app.json" },
// { "path": "./tsconfig.node.json" }
],
// 作用:让@具有提示效果
"compilerOptions": {
"esModuleInterop": true,
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"]
}
},
"include": ["src/**/*.ts", "src/**/*.js", "src/**/*.vue"]
}
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4