- 博客(14)
- 收藏
- 关注
原创 隐藏元素的几种方法
{ display: none; /* 不占据空间,无法点击 */ }{ visibility: hidden; /* 占据空间,无法点击 */ }{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }{ position: relative; top: -999em; /* 占据空间,无法点击 */ }{ position: absolute; visibility: hidden; /* 不占据空间,无法点击 */ }{ height: 0.
2021-03-10 10:31:53
65
原创 异步执行机制
所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。线程不断重复上面的第三步。...
2021-03-09 09:35:17
78
原创 vue生命周期详解
beforeCreate:Created:数据已经和data属性进行绑定(放在data中的属性当值发生改变的同时,视图也会改变)beforeMount:初始化DOM,vue实例,数据未渲染;Mounted:渲染数据;beforeUpdate/updated:触发对应组件的重新渲染beforeDestroy:钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。Destroyed:在Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被
2021-03-09 09:33:55
82
原创 DOM节点的增删改查
创建节点、追加节点createElement(标签名)创建一个元素节点(具体的一个元素)。createTextNode(节点文本内容)创建一个文本节点。createDocumentFragment() //创建一个 DOM 片段。appendChild(节点)追加一个节点。插入节点appendChild(节点)也是一种插入节点的方式,还可以添加已经存在的元素,会将其元素从原来的位置移到新的位置。insertBefore(a,b)是参照节点,意思是 a节点会插入 b节点的前面。删除.
2021-03-01 10:37:37
153
原创 JS常见清除浮动的方法
父级标签定义height高度结尾处加空div标签,clear:both父级定义overflow:hidden单伪元素法content:"";display:block;visibility:hidden;height:0;line-height:0;clear:both;双伪元素.div:before,.div:after {content: "";display: block;clear:both;}.div {zoom: 1;}...
2021-03-01 10:27:18
342
转载 elementui中下拉command事件传递多个参数
command事件中默认传递一个参数,即你每个下拉选项el-dropdown-item中设定的command的值,怎么样传递多个参数呢?我的项目中el-dropdown在一个遍历循环中,需要将index角标将参数传给@command="handleCommand"事件中。解决办法:动态设置每个el-dropdown-item中command的值<el-dropdown @command="handleCommand"> <span clas
2020-12-09 11:15:10
1530
转载 js 深拷贝代码实现
export function deepClone(obj) { let result = typeof obj.splice === "function" ? [] : {};//obj为list时typeof obj.splice为'function',为对象时typeof obj.splice为'undefined' if (obj && typeof obj === "object") { for (let key in obj) { if (obj[ke
2020-12-09 10:57:59
87
转载 setTimeout中this指向的问题
setTimeout中函数内的this是指向了window对象,setInterval同理如果想要让setTimeout中的this不指向window,可以使用以下常用办法:方法一:使用之前重新指向到一个变量,然后操作这个新的变量if (paramObj.id != null) { var that = this; setTimeout(function() { that.$emit("getResponseData", paramObj);
2020-12-07 09:53:03
188
原创 JS 数组常用方法
arr.push:数组中从后推入一个数,返回数组长度arr.pop:数组中删除一个数,返回被删除的元素arr.unshift:数组中前面加入一个元素,返回数组长度arr.shift:数组中从前删除一个元素,返回被删除的元素arr.splice(3,1):从第一个参数开始删除,第二个参数是要被删除的个数arr.join(’|’):以特定字符连接成一个字符串arr.split(’*’):以特定字符吧字符串分割开arr.indexOf(a):查找元素,返回索引arr.includes(a):用来.
2020-12-04 14:34:08
66
转载 js代替eval的办法
function evalPro(str) { var Fn = Function; return new Fn('return ' + str)();}
2020-12-04 10:48:36
290
转载 vue 文件下载实现
downloadExcel() { this.$ajax .post( downloadExcelTemplateProte, //接口 data, //参数 {responseType: "blob"} //数据返回类型 ) .then((res) => { let url = window.URL.createObjectURL(new Blob
2020-12-04 10:45:21
88
转载 uniapp.uploadFile封装并解决移动端上传时header头时间戳丢失问题
function uploadFile(obj) { var time = new Date().getTime(); var secret = Base64.stringify(hmacSHA256(token + "" + time, "0Q4icRHjJY2BRdTJdJrCFixD6OMhhd01")); var url = obj.url; //服务器地址 var filePath = obj.filePath; //要上传文件资源的路径。 var formData = obj.form
2020-12-03 10:53:10
2007
原创 vue 三大组间传值详解
父传子通过属性绑定的形式,把需要传递给子组件的数据子组件中通过props的方式接受数据<div id="app"> <!-- 1、在使用组件的时候,使用绑定命令,将所需要的VM实例数据绑定到私有组件中 --> <com1 v-bind:parentmsg="msg"></com1> </div> <script> var vm = new Vue({
2020-12-01 16:09:09
78
原创 Vuex入门及详解
在现代 Web 开发复杂多变的需求驱动之下,组件化开发已然成为了事实上的标准。组件化开发为我们带来了:更快的开发效率更好的可维护性组件内的状态管理流程每个组件都有自己的状态、视图和行为等组成部分。new Vue({ // state data() { return { count: 0 }; }, // view template: ` <div>{{ count }}</div> `, // actio
2020-12-01 10:00:38
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人