# kk-management **Repository Path**: overbug/kk-management ## Basic Information - **Project Name**: kk-management - **Description**: 前端技术栈1.vue-router 2.vuex 3.axios 4.element-ui 5.mock6.echarts - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-09-06 - **Last Updated**: 2024-09-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # my-app ## Project setup ``` npm install ``` ### Compiles and hot-reloads for development ``` npm run serve ``` ### Compiles and minifies for production ``` npm run build ``` ### Lints and fixes files ``` npm run lint ``` ### Customize configuration See [Configuration Reference](https://cli.vuejs.org/config/). ##element-ui 安装 1. npm i element-ui -S 2. 在main.js里面引入import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; 3. 再全局使用Vue.use(ElementUI) 4. 把App.vue的样式以及没用的东西删掉 以上是全局引入的方法 ##element-ui 按需引入 1. 借助babel-plugin-component,我们可以只引入需要的组件,以达到减少项目体积的目的。 2. npm install babel-plugin-component -D 3. 将文件babel.config.js数组的内容copy ["es2015", { "modules": false }] 以及plugins属性 "plugins": [ [ "component", { "libraryName": "element-ui", "styleLibraryName": "theme-chalk" } ] ] 4. 然后在main.js中引入import { Button, Select } from 'element-ui'; Vue.component(Button.name, Button); Vue.component(Select.name, Select); /* 或写为 * Vue.use(Button) * Vue.use(Select) */ 注: es2015可能没有这个依赖,会报错,将名字es2015改为@babel/preset-env 按需引入:打包的时候,没用到的组件就没加载,用到的组件进行引入。 全局引入:把所有组件加载的全部的加到项目里面,打包的时候。 为了让用户更好的体验,用户请求资源的时候会发起http请求, 项目越大,请求的时间就越长,影响用户的体验。 也算是前端优化的一步 ## vue-router的引入 npm i vue-router@3.6.5 1. src新建router文件夹创建index.js文件 2. import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) 3. 在main.js中引入router import router from './router' 4. 在当前实例上挂载 5.关闭eslint代码规范 在vue.config.js中 lintOnSave: false //关闭eslint校验 再重启项目 6. 放到app.vue中 ## 引入less选择器 1.在npm官网上查找有没有对应的版本号 2.npm i less@4.1.2 3.npm i less-loader@6.0.0 4. 对默认的样式进行清除在App.vue 5. scoped只对当前页面作用于当前页面 ## vuex的引入 1.npm i vuex@3.6.2 这是vue2的版本 2.在src文件中创建store文件夹 3.用vuex实现左侧折叠 1、过程就是点击按钮触发store当中state的修改方法,然后在aside组件当中获取并且使用state的变化结果 ## 9.9的bug 1.handlemenu的点击事件 在方法里面handleMenu单词不一致导致控制台报错为没有定义handlemenu的方法,把handleMenu改为handleMenu 2.重新敲代码时,同样出现报错,控制台显示state中没有定义define,因为在tab.js中的collapseMenu(state) 函数接收 state 对象作为参数,然后修改 state.isCollapse 的值。这种设计使得 collapseMenu 能够明确地知道它正在修改哪个状态属性,并且这个修改是同步发生的。如果你不使用 state 作为参数,那么你就无法访问到 Vuex store 的当前状态,从而无法进行任何状态更新。 把collapseMenu()改为collapseMenu(state) ## 9.10 的bug 1.在Home.vue中的实现对表单的数组遍历中出现bug,无法响应到数据是因为把()写成了{} 2.把{val, key} 改为 (val, key) el-table-column v-for="(val, key) in tableLabel" :prop="key" :label="val" :key="key"/> 3.以及:key="key",是在用v-for的时候会警告⚠,但是不影响运行,所以如果看不习惯可以加上 ## axios安装 1. npm install axios 2. 创建utils文件夹,里面创建request.js文件 3. 二次封装axios // 添加请求拦截器 axios.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 axios.interceptors.response.use(function (response) { // 对响应数据做点什么 return response; }, function (error) { // 对响应错误做点什么 return Promise.reject(error); }); 4.创建api文件夹,创建index.js文件,导入import http from "@/utils/request"; 创建一个getData实例返回一个promise 5. 然后再Home.vue中引入import { getData } from '../api' ## mock的安装 用于前端模拟后端接口的一个库,可以通过拦截前端发起的请求,去自己定义一些返回的数据,这种情况下是我们不依赖后端的情况 作用就是生成随机数据,拦截ajax请求 1. npm i mockjs 2. 在api文件夹中新建mock.js 3. import mock from "mockjs"; // 定义mock请求拦截 mock.mock('/api/home/getData', function () { //拦截到请求后的处理逻辑 console.log('拦截到了'); }) 4. 在main.js中引入 ## 引入echarts 1. npm i echarts@5.1.2 2. 在Home.vue中引入 import * as echarts from 'echarts' 3. 在文件中的 mounted下面 // 基于准备好的dom,初始化echarts实例 // var myChart = echarts.init(document.getElementById('main')); const echarts1 = echarts.init(this.$refs.echarts1)