例如有些项目用到了图表(echarts),可以按需引入依赖包,不用加载整个echarts库。
vue项目打包的时候将.map文件忽略,不需要编译打包出来。这样文件就会小很多
(注意:dist 文件,想要恢复。需要有.map文件 通过source-map还原)
- input 防抖 (在某个时间段内只执行最后一次)
- 上拉加载 节流 (执行一次之后,在一段时间之后才可以再次执行)
实现方法:
- 可通过setTimeOut(fn,delay) 延时
- 也可以使用时间戳 相减大于这个范围才可以再次执行
( 什么时候使用防抖和节流,需要根据业务需求)
4.解决H5页面缓存问题 (服务渲染,可以防止缓存问题 为什么 在ajax 知识点中
dataType 属性中)
1.在ajax发送请求前加上 anyAjaxObj.setRequestHeader(“Cache-Control”,”no-cache”)。
2.在url后面加上一个随机数“fresh=”+Math.random()
3.在url后面加上要给时间戳 “newTime=”+new Date().getTime()
5.按钮的节流操作
在规定的时间内不许可重复点击,防止多次请求后台接口。
6.v-for v-if
禁止不在同一级中使用,解决方法:1.将v-if放在v-for循环外面 2. 利用计算属性对数组进行操作,然后在循环
7.v-for key key的主要作用时高效的更新虚拟dom
key 用数组中的唯一性 id 尽量不用index
如果使用key =index 只是进行渲染还好,如果还对数组进行操作,就会出现bug了
因为你如果删除或者增加元素的时候,index都会变化,当为选择功能的时候,选择的时候就会不准确,出现问题。或者渲染的时候,删除的当前元素后面的所有都重新渲染一遍,因为当前index改变了,后面的都会受到影响,导致性能降低。
input textarea 编辑提交的时候,要过滤html<>标签。,并且要把尖括号转义。防止提交<html></html>代码影响前端。例如:走马灯标签代码
每次切换路由的时候都让页面回到最顶部
scrollBehavior (to, from, savedPosition) {
return { x: 0, y: 0 }
}
写在 配置路由项的下边
10.禁止htmlF12调试
//禁止调试
setInterval(function() {
check()
}, 1000);
var check = function() {
function doCheck(a) {
if (("" + a/a)["length"] !== 1 || a % 20 === 0) {
console.log('调试')
//
(function() {
}
["constructor"]("debugger")()
)
} else {
// window.location.href='https://www.jb51.net/article/196924.htm'
(function() {}
["constructor"]("debugger")()
)
}
doCheck(++a)
}
try {
doCheck(0)
} catch (err) {}
};
check();
检测当前实在pc还是app中
var sUserAgent = navigator.userAgent.toLowerCase();
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";
var bIsMidp = sUserAgent.match(/midp/i) == "midp";
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";
var bIsAndroid = sUserAgent.match(/android/i) == "android";
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";
if(bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {
//app
} else {
//pc
// window.location.href='https://www.jb51.net/article/196924.htm'
}