Vue做项目必备(节省80%时间,持久更新,不讲武德)

目录

1.iconfont

2. sass版本问题

3.屏幕高宽度自适应

4. 跨域

5. 拦截器

 6.项目插件安装

7.登录鉴权(单路由)

8.插件引入、持久化、字体图标、富文本、时间戳

9. 跳转、返回、前进和后退

10.echarts图表的使用

11. vue组件中引入js文件(放script中)

 12.vue组件中引入css文件(放style中)

 13.插槽

 14.vue六种传值方式(属性传值、$refs、$parent、通知传值(广播传值)、本地传值、路由传值)

 15.增删改查

 16.登录+验证规则+重置

17.模拟数据

 18.电话邮箱正则验证

19.dialog弹框(可用于增删改查)

 20.登录的盒子居中

21.api封装


Vue脚手架中盒子高度设置问题:height:100vh;      //es6语法

0.创建项目准备

检查是否安装成功:如果输出版本号,说明我们安装node环境成功

node -v 

npm -v

全局安装@vue/cli

npm install -g @vue/cli
检查是否安装成功:如果输出版本号,说明我们安装node环境成功

vue --version

创建项目

vue create test_vue

1.iconfont

<template>
	<div>
		<ul>
			<!-- 方法一: -->
			<li><span class="iconfont">&#xe62f;&#xe644;&#xe616;</span></li><br>
			<li><span class="iconfont">&#xe644;</span></li>
			<li><span class="iconfont">&#xe616;</span></li>
			<!-- 方法二 -->
			<i class="iconfont icon-caidan"></i>
			<i class="iconfont icon-jiazai1"></i>
			<i class="iconfont icon-shangchuan"></i>
			
			
		</ul>
	</div>
</template>

<script>
	import iconfont from '../myicon/icon-font/download/font_20dtp1i3pv6/iconfont.css'
	export default {
		
	}
</script>
  
<style scoped>
	li>span{
		width: 50px;height: 50px;
		float: left;
	}
</style>

2. sass版本问题

1、vue中sass安装使用============================================================
方法一:

我本地是将    "sass-loader": "^8.0.0",更换成了 "sass-loader": "^7.3.1",

卸载当前版本   npm uninstall sass-loader
安装     npm install sass-loader@7.3.1 --save-dev

方法二:

如若不行,此时运行按照提示执行  npm rebuild node-sass  命令

(如若还不行,则先运行npm install node-sass命令执行)

3.屏幕高宽度自适应

mounted() {
		// 调用自动调节
		this.fc_height();
	},
	methods: {
		// 获取屏幕宽高自动调节
		fc_height() {
			let html = document.documentElement || document.body;
			let height = html.clientHeight - 60;
			let aside = document.querySelector('.el-aside');
			aside.style.height = height + 'px';
		}
	}

4. 跨域

proxyTable: {
			'/admin': { //代理api
				target: 'http://ceshi5.dishait.cn/admin', //服务器api地址
				ws: true, // proxy websockets
				changeOrigin: true, //是否跨域
				pathRewrite: { //重写路径
					'^/admin': ''
				}
			}
		},

5. 拦截器

//添加请求拦截器
axios.interceptors.request.use(config => {
  console.log(config)
  // 从sessionStorage获取token值,然后设置给请求头
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 在最后必须 return config
  return config
})

 6.项目插件安装

npm i element-ui -S                
npm install axios --save      
npm install echarts --save        
npm install vant --save   
npm install vuex -s
cnpm install node-sass@4.14.1 sass-loader@7.3.1 -s

7.登录鉴权(单路由)

		beforeEnter(to,from,next){
			if(sessionStorage.getItem("token")){
				next()
			}else {
			   alert("请先登录");
			   next('/')
			}
		},

8.插件引入、持久化、字体图标、富文本、时间戳

// 引入vuex
import Vuex from 'vuex';

// 持久化=====================================================================
import VuexPersistence from 'vuex-persist'         //store中引入
const vuexLocal = new VuexPersistence({            //store中引入
    storage: window.localStorage
})


plugins: [vuexLocal.plugin]                    //store中引入


cnpm install --save vuex-persist               //下载


// 引入vant组件====================================================================
import Vant from 'vant';
import 'vant/lib/index.css';
Vue.use(Vant);


// 引入第三方控件[分类参数]===============================================
npm i vue-table-with-tree-grid -S     //下载

import TreeTable from 'vue-table-with-tree-grid'    //在main.js中使用
Vue.config.productionTip = false               //在main.js中使用
//全局注册组件===============================================
Vue.component("tree-table", TreeTable)

// 导入字体图标===============================================
import './assets/fonts/iconfont.css'
// 导入富文本编辑器(用法)===============================================
import VueQuillEditor from 'vue-quill-editor'
// require styles 导入富文本编辑器对应的样式
import 'quill/dist/quill.core.css'
import 'quill/dist/quill.snow.css'
import 'quill/dist/quill.bubble.css'

// 将富文本编辑器,注册为全局可用的组件===============================================
Vue.use(VueQuillEditor)


// 时间戳转换===============================================
Vue.filter('dateFormat', function(originVal) {
	const dt = new Date(originVal)

	const y = dt.getFullYear()
	const m = (dt.getMonth() + 1 + '').padStart(2, '0')
	const d = (dt.getDate() + '').padStart(2, '0')

	const hh = (dt.getHours() + '').padStart(2, '0')
	const mm = (dt.getMinutes() + '').padStart(2, '0')
	const ss = (dt.getSeconds() + '').padStart(2, '0')

	return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})


// 引入ElementUI组件===============================================
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

//Echarts图表引入===============================================
import echarts from 'echarts'
Vue.prototype.$echarts = echarts

//引入axios和配置请求根路径===============================================
import axios from 'axios' 
axios.defaults.baseURL = 'https://www.liulongbin.top:8888/api/private/v1'
// 添加请求拦截器===============================================
axios.interceptors.request.use(config => {
  console.log(config)
  // 从sessionStorage获取token值,然后设置给请求头
  config.headers.Authorization = window.sessionStorage.getItem('token')
  // 在最后必须 return config
  return config
})
Vue.prototype.$http = axios

9. 跳转、返回、前进和后退

编程导航  

我们可以用在渲染完元素不方便添加router-link的使用
编程导航提供的方法:
this.$router.push(路径) 跳转到哪个路由
this.$router.go(-1) 返回上一级
vue还提供一种方式 来实现导航  编程式导航 在事件中通过this.$router的方法来实现
我们主要掌握的方法
push()  进入到哪个页面
想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。
go(-num) 返回哪个页面
这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n)
replace()
跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录。 没有办法使用go()返回了


this.$route 和this.$router的区别:
this.$route 路由信息对象 可以获取参数列表
this.$router路由实例对象 可以实现页面的转换

10.echarts图表的使用

<template>
    <div class="data_report">
        
        <div id="main" style="width: 600px;height:400px;">
            
            
        </div>
    </div>
    
</template>

<script>
let echarts = require('echarts');
export default {
    mounted() {
        this.fc_echarts();
    },
    methods: {
        fc_echarts() {
            // 基于准备好的dom,初始化echarts实例
            var myChart = echarts.init(document.getElementById('main'));
            console.log(myChart);
            // 绘制图表
            // 指定图表的配置项和数据
            let option = {
                // title: {
                //     text: '堆叠区域图'
                // },
                tooltip: {
                    trigger: 'axis',
                    axisPointer: {
           &nbs
vxe-table是一个基于vue的表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、模态窗口、自定义模板、灵活的配置项、丰富的扩展插件等... 设计理念: 面向现代浏览器,高效的简洁 API 设计 模块化表格、按需加载、插件化扩展 为单行编辑表格而设计,支持增删改查及更多扩展,强大的功能的同时兼具性能 功能: Basic table (基础表格) Grid (高级表格) Size (尺寸) Striped (斑马线条纹) Table with border (带边框) Cell style (单元格样式) Column resizable (列宽拖动) Maximum table height (最大高度) Resize height and width (响应式宽高) Fixed column (固定列) Grouping table head (表头分组) Highlight row and column (高亮行、列) Table sequence (序号) Radio (单选) Checkbox (多选) Sorting (排序) Filter (筛选) Rowspan and colspan (合并行或列) Footer summary (表尾合计) Import (导入) Export (导出) Print (打印) Show/Hide column (显示/隐藏列) Loading (加载中) Formatted content (格式化内容) Custom template (自定义模板) Context menu(快捷菜单) Virtual Scroller(虚拟滚动) Expandable row (展开行) Pager(分页) Form(表单) Toolbar(工具栏) Tree table (树形表格) Editable CRUD(增删改查) Validate(数据校验) Data Proxy(数据代理) Keyboard navigation(键盘导航) Modal window(模态窗口) Charts(图表工具) 更新日志: v4.0.20 table 修改单选框、复选框获取值错误问题 grid 修复 KeepAlive 中报错问题
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值