一、构建的常用语句
- 使用 vite 构建前端工程
- 下载 sass 依赖,注意这是个 开发依赖
- 下载 axios 异步插件
- 下载 ElementPlus 图形界面组件
- 下载 ElementPlus 图标组件
- npm i @element-plus/icons-vue -S
- 下载 ECharts 图表界面组件
- 下载 md5 加密依赖 防止 密码明文传送
- 下载 pinia 插件,防止刷新重置仓库
- npm i pinia-plugin-persist -S
- 下载 数字滚动插件
二、各种请求格式
- get
- 直接拼接:http://localhost:8080/getstudent/17
- params拼接:http://localhost:8080/getstudent?id=17
- delete(delete跟get相似,一般只在请求上直接拼接,不会携带data)
- 直接拼接:http://localhost:8080/delstudent/17
- params拼接:http://localhost:8080/delstudent?id=17
- put
- 带Json格式的参数axios.put('/api/user', { name: '张三', age: 18 })
- 以表单格式发送(Content-Type:application/x-www-form-urlencoded):
axios.put('/api/user', qs.stringify({ name: '张三', age: 18 }))
- post
- 带Json格式的参数axios.post('/api/user', { name: '张三', age: 18 })
- 以表单格式发送(Content-Type:application/x-www-form-urlencoded):
axios.post('/api/user', qs.stringify({ name: '张三', age: 18 }))
代码实例:
request.ts:- import axios,{type AxiosInstance} from "axios";
- import { ElMessage } from "element-plus";
- const request:AxiosInstance = axios.create({
- /* http://db.etoak.com:9527 */
- baseURL:import.meta.env.VITE_APP_BASE_API,
- /* 超时时间 */
- timeout:5000,
- })
- request.interceptors.request.use(config=>{
- console.log('请求拦截器~~~~',config)
- return config
- },error=>{
- return Promise.reject(error)
- })
- /* 设置响应拦截器 */
- request.interceptors.response.use(Response=>{
- console.log('响应拦截器~~~~',Response)
- const {data} = Response
- if(data.code===200||data.flag){
- return Response
- }
- ElMessage.error(data.msg)
- return Promise.reject(data)
- },error=>{
- const {message} = error
- if(message.indexOf('Network Error')!==-1){
- ElMessage.error('孩子,没联网')
- }else if(message.indexOf('参数')!==-1){
- ElMessage.error('参数不对')
- }
- return Promise.reject(error)
- })
- export default request
复制代码 api/dao.ts:- import request from "@/utils/request";
- const PATH = '/testUser/'
- export const login = (username: string, password: string) =>
- request({
- url: `${PATH}login?username=${username}&password=${password}`,
- /* get不能发送json */
- method: 'get',
- })
- export const reg = (pojo: RegUser) =>
- request({
- url: `${PATH}add`,
- /* post可以发送json */
- method: 'post',
- data: pojo,
- })
- export const UpdateById = (newPojo: UpdateUser | UpdateRole) =>
- request({
- url: `${PATH}update`,
- method: 'put',
- data: newPojo,
- })
- export const removeById = (id: string) =>
- request({
- url: `${PATH}delete/${id}`,
- /* url:`${PATH}delete?id=`, */
- method: 'delete',
- })
复制代码 三、使用声明类文件让你的前端代码不爆红
在我之前的一段较为紧张的学习时期,我们在写前端的时候,不去写声明文件,来定义一些属性的接口,就导致,我们在使用这些属性的时候,会让我们的代码爆红,虽然这并不影响代码的执行,这种情况也一度让我忘记了,怎么去定义这样的接口类。- - 这种文件在 TypeScript 里叫做类型声明文件,英文名是:Type Declaration File。
- - 通常以 .d.ts 结尾。
- - 作用:专门用来声明类型(接口、类型别名、全局变量等),不包含实际的实现代码。
复制代码- declare interface Province{
- id:string,
- name:string
- }
- declare interface City{
- id:string,
- name:string
- }
- declare interface Area{
- id:string,
- name:string
- }
- declare interface CascadeUser{
- provinceId:string,
- cityId:string,
- areaId:string
- }
复制代码 四、关于Echarts图标绘制
这里选择直接贴代码
script:- import { onMounted, onUnmounted, ref, reactive } from 'vue';
- import * as echarts from 'echarts'
- import 'echarts/theme/vintage'
- /* 获取页面 DOM */
- let mychart = ref<HTMLDivElement | undefined>()
- let chart:any /* 注意这里如果使用 ref 会导致 tooltip 中的指示器失效! */
- /* 此函数用来绘制图表 */
- const initChart = () => {
- /* 设置初始化位置,也就是绘制在哪里 */
- chart = echarts.init(mychart.value,'vintage')
- /* 加载配置项 配置项中常见的配置项一定要明确其功能,由于配置项众多,不要求逐个记住,但是要
- 懂得如何使用 官方 API 文档查阅 测试,注意只要配置项书写错误,则无报错机制,图表不显示 */
- chart.setOption({
- /*
- 这里是图标各类数据
- */
- })
- }
- /* 页面真实 DOM 覆盖虚拟 DOM,全部渲染完毕开始绘制 ECharts 图表 */
- onMounted(()=>{
- initChart() /* 绘制图表 */
- })
- /* 当组件销毁前重置 图表对象,防止切换过程中缓存误导 */
- onUnmounted(()=>{
- if(!chart) return
- chart.dispose() /* ECharts 自带函数,强制销毁当前对象 */
- chart = null /* 重置为 null */
- })
- /* 添加随着浏览器的拖动图表自适应 */
- window.addEventListener("resize", function () {
- if( chart ) chart.resize()
- /* 如果存在多个则依次调用 */
- /* myChartA.resize();
- myChartB.resize(); */
- })
复制代码 template:来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |