vue3:vue3+vite+ts+pinia(上)

简介: vue3:vue3+vite+ts+pinia(上)

一、背景

记录一套技术方案。

二、项目基础

2.1、创建项目

yarn create vite

输入名字后,这里出现了几个选项,不清楚都是干啥的,下来研究

选择后完成

2.2、vite.config.ts 配置alias:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  }
})

2.3、安装element-plus

https://element-plus.gitee.io/zh-CN/guide/installation.html#%E4%BD%BF%E7%94%A8%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8

2.4、配置环境变量:

CSDN

2.5、配置router

vite2+vue3+TS+vue-router_ChenNianA的博客-CSDN博客

https://www.jianshu.com/p/5f0301bca0ed

2.6、安装husky

【Vue】EsLint+Husky 实现代码提交时自动校验_夜雨Gecer的博客-CSDN博客_husky vue

2.7、安装sass

安装后重启项目

npm install sass sass-loader -D

经过测试不需要安装sass-loader,安装了会报错

2.8、使用pinia

学习Pinia 第一章(介绍Pinia)_小满zs的博客-CSDN博客

2.9、使用cookie

安装cookie

pnpm add @types/js-cookie

pnpm add js-cookie

页面引入

import cookie from 'js-cookie'

使用cookie

const token = `Bearer ${cookie.get('token')}`
console.log('16', token)

使用成功

2.10、处理问题:

解决方法:

{
  "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,
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
  "references": [{ "path": "./tsconfig.node.json" }]
}

问题得到处理,不报错了

2.11、请求接口:

类型限制:

定义

使用:

参数要一致,不一致就会报错

报错如图

2.12、get请求传递参数:

// 定义请求方法
export const getUser = (data: T.userParams) => {
    return axios({
        method: "get",
        url: "/abc/getCompanyListByUser",
        data,
        config: {
            timeout: 10000
        }
    })
} 
// 业务文件---直接和post方法一样的传递参数即可
import { getUser } from "@/api/m-staff-center";
let params = {
  keyword:"snow",
}
getUser(params).then((res: any)=>{
  console.log('4res', res)
})

这里已经得到了参数

查看url已经有参数了,,查看查询结果,生效,ok

相关文章
|
9月前
|
JavaScript 前端开发 安全
Vue 3
Vue 3以组合式API、Proxy响应式系统和全面TypeScript支持,重构前端开发范式。性能优化与生态协同并进,兼顾易用性与工程化,引领Web开发迈向高效、可维护的新纪元。(238字)
1183 139
|
9月前
|
缓存 JavaScript 算法
Vue 3性能优化
Vue 3 通过 Proxy 和编译优化提升性能,但仍需遵循最佳实践。合理使用 v-if、key、computed,避免深度监听,利用懒加载与虚拟列表,结合打包优化,方可充分发挥其性能优势。(239字)
603 1
|
9月前
|
JavaScript 安全
vue3使用ts传参教程
Vue 3结合TypeScript实现组件传参,提升类型安全与开发效率。涵盖Props、Emits、v-model双向绑定及useAttrs透传属性,建议明确声明类型,保障代码质量。
681 0
|
10月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
793 2
|
9月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
663 137
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
1327 0
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
1821 78
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
797 17