前端小技巧(1)
1. vue 数组赋值
问题:使用数组直接赋值不会触发数据的双向绑定?
方法:使用filter(),concat(),slice()方法操作数组,不会更新视图;使用push(),pop(),shift(),unshift(),splice(),sort(),reverse()方法操作数组,会触发视图更新
2. 组件 element选择组件
问题:下拉框样式修改不了?
方法:给<el-select>标签添加一个属性 :popper-append-to-body="false" popper-class Select 下拉框的类名
3. vue 自定义事件
提示:this.$emit("自定义事件") 不能使用驼峰
4.禁止被鼠标选中
方法:
// 绑定事件
onselectstar = “return false”;
// 设置样式
.class{
User-select:none;
}
5.复制到剪贴板
方法:
Var obj = document.getElementById(“”);
obj .select();
Document.execCommand(‘copy’);
6.blob 导出文档
方法:
// 获取导出内容,设置文件格式
Let blob = new Blob([内容],{‘type’:’text/xml’})
// 通过a标签导出
If(‘download’ in document.creatElement(‘a’)){
Const alink = document.createObjectURL(‘a’)
Alink.href = URL.createObjectURL(blob)
Alink.setAttribute(‘download’,文件名)
Alink.click()
Window.URL.revokeObjectURL(blob)
}else{
navigator.msSaveBlob(blob,文件名)
}
This.$refs.upload.clearFiles();
7.json字符串转json方法
方法:
var obj = eval('(' + str + ')');
var obj = str.parseJSON();
var obj = JSON.parse(str);
$.parseJSON(jsonStr);
(new Function('return' +str1 ))();
8. switch case break default
方法:
switch (表达式)
{
case 常量表达式1: 语句1
case 常量表达式2: 语句2
┇
case 常量表达式n: 语句n
default: 语句n+1
}
9. bootstrap tabble 表格 方法查询
方法:
$.bootstrap(‘filterBy’,{});
10.浏览器事件
方法:
// 页面刷新
Window.onbeforeunload = function(e){
e.returnValue = false
e.preventDefault();
}
// 页面后退
History.pushState('参数对象','名称','url 可选');
// popstate事件
Window.addEventListener(‘popstate’,
function(){
History.pushState(null,null,document.URL);
}
// 右键点击事件
Document.oncontextmenu = function(){
return false;
}