- 博客(53)
- 资源 (4)
- 收藏
- 关注

原创 vue-router路由模式,
路由模式路由模式决定了:路由从哪里获取访问路径路由如何改变访问路径vue-router提供了三种路由模式:hash:默认值。路由从浏览器地址栏中的hash部分获取路径,改变路径也是改变的hash部分。该模式兼容性最好。http://localhost:8081/#/blog --> /bloghttp://localhost:8081/about#/blog --> /bloghistory:路由从浏览器地址栏的location.pathname中获取路径,改
2021-06-03 21:20:11
628
5

原创 重排(回流)和重绘是什么?什么情况下绘触发重排和重绘?以及如何减少这种情况的发生。
页面渲染过程浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了Render Tree。有了RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大小和位置,最后把节点绘制到页面上。重排和重绘是什么?1、回流:当Render Tree中部分或全部元素的尺寸、结构、或某些属性发生改变时,浏览器重新渲染部分或全部文档的过程称为回流。每个页面至少需要一次回流,就是在页面第一次加载的时候。2、重绘:当页面中元素样式的改变并不影响它在文档流中的位置时
2021-03-02 23:10:34
2060
1
原创 小程序获取手机号 及nodejs解密
按照官网要求:从基础库 2.21.2 开始,对获取手机号的接口进行了安全升级;因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 button 组件的点击来触发。
2022-12-30 16:11:53
1686
原创 vue3+ts打包报错is a JavaScript file. Did you mean to enable the ‘allowJs‘ option?
vue3 + TS 运行时没问题,打包报错。原因:在script脚本上少写个......
2022-09-23 05:31:19
4205
原创 解决Linux ping不通 192.168.1.1、www.baidu.com 和虚拟机ping失败 network is unreachable等问题
我的虚拟机是 ping 192.168.1.1 和ping www.baidu.com都失败。之后网络就连接上了 ping 192.168.1.1 和 www.baidu.com都可以了。记得修改完之后从新启动下。
2022-09-22 01:48:10
4047
原创 小程序wxs
wxs(weixin script)是小程序独有的一套脚本语言,结合wxml,可以构建出页面的结构wxs代码可以编写在wxml文件中的 标签中,就像JavaScript代码可以编写在html文件中的wxs代码还可以编写在
2022-08-09 09:38:09
845
原创 v-if和v-show的区别,易懂
在实际开发中,显示状态变化频繁的情况下应使用v-show,以保持树的稳定;显示状态变化较少的时候应该使用v-if,以减少树的节点和渲染量.
2022-06-28 15:00:51
330
原创 ES6 Promise和ES7async、await
有了Promise之后,异步任务有了一种统一的处理方式有了统一的处理方式,ES官方就可以对其进一步优化ES7退出了两个关键字`async`和`await`,用于更加优雅的表达Promise;
2022-06-24 16:33:18
263
原创 React初级
React用于动态构建用户界面的JavaScript库(只关注试图)导入文件方式:<script src="https://unpkg.com/react@17/umd/react.development.js"></script><script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script><...
2022-05-03 17:17:29
1004
原创 移动端适配
移动端尺寸1. 设备像素(物理像素)屏幕的物理像素,任何设备屏幕的物理像素的数量都是固定不变的,单位是pt (点)‘一般指的是手机的分辨率1pt = 1 / 72英寸2. CSS像素 (设备独立像素,逻辑像素)CSS中使用的一个抽象的概念,单位是px值是相对的,并不是绝对的:默认情况下一个设备像素,对应一个CSS像素。但是当浏览器放大2倍的时候,设备像素没有变化,但是CSS像素放大了2倍,这时,一个设备像素对应2个CSS像素。这就验证了CSS像素是一个相对单位,而且是相对于物理像
2022-03-11 18:19:02
402
原创 Mock.js
Mock.jsmock.js官网生成随机数据,拦截Ajax请求拦截Ajax请求的接口,返回随机创建的mock数据。语法规则:每个数据模板由3部分构成:属性名,生成规则,属性值“name|rule”:valueMock.mock生成规则的含义需要依赖属性值的类型才能确定String“data1|1-5” : “abc”, // 表示后面的字符串随机生成1-5次;“data2|3” : “123”, // 表示后面的字符串重复3次;Number“number|+1”:1
2021-11-19 15:11:30
872
原创 配置Gitee远程仓库SSH
SSH Key创建SSH key 建立远程连接$ ssh-keygen -t rsa -C "youremail@example.com"测试SSH key配对成功$ ssh -T git@gitee.com配置SSH右键打开Git Bash Here <任意路下都可以>;输入 ssh-keygen -t rsa -C "youremail@example.com";这句话会在本地生成公钥和秘钥之后一直点回车;这时在用户下回多出一个SSH文件夹如果找不到点开这里勾选
2021-11-06 17:29:16
4121
原创 五大主流浏览器浏览器及其内核
IE: trident内核;Firefox:gecko内核;Safari:webkit内核;Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核;Chrome:Blink(基于webkit,Google与Opera Software共同开发);
2021-10-29 15:25:26
368
原创 Ajax解释与使用 很简单。
什么是其他的域,怎样算跨域?页面本身有协议、域名、端口号。如: https://www.baidu.com:80http端口号默认是80;https端口号默认是443;协议、域名、端口号,这三个有任意一个不一样就属于跨域跨域这个行为,发生在哪里?1. 即时跨域了(协议、域名、端口号有一个不一样),请求也是可以发出的;2. 服务器端也是可以接收的;3. 服务器端也是可以正常处理的;4. 服务器端也是可以正常返回数据的;5. 浏览器端也能够接受到这些数据;6. 接收到以后,发现当前的域
2021-10-24 13:33:20
1754
原创 在JS中为什么0.1 + 0.2 > 0.3 ?
在JS中为什么0.1 + 0.2 > 0.3 ? 因为在JS中,浮点数使用的是64位固定长度表示的,其中的一位表示符号位,11位用来表示指数位,剩下的52位是尾数位。 由于只有52位表示尾数位,而0.1转为二进制是一个无限循环数0.0001100110011001100...(1100循环)。 &nb
2021-09-27 11:21:49
500
1
原创 小数的十进制转二进制
小数的十进制转二进制 小数点之后用乘2取整法:如0.5(D) = 0.1(B). 按照如下计算方法:1. 首先给小数部分乘2,如果小数点前为 1则记1;为0,则记0;2. 在对剩下的小数部分乘2,计算出1或0;3. 重复以上的步骤,直至达到需要的精度。如下:0.25转换为二进制:0.25 * 2 = 0.5则记为0,0.5
2021-09-27 10:41:55
3504
原创 简单了解闭包
闭包 闭包很常用,也简单 闭包可以理解成定义在一个函数内部的函数,本质上,闭包将函数内部和函数外部连接起来。function A(){ var i = 0; function B(){ console.log(i++); } return B;}var C = A();c...
2021-09-11 10:14:09
151
原创 vue自定义指令
如果一个组件的效果非常简单,但是用的地方特别多,假如我们有100个组件都需要依赖Loading这个效果,那么我们每一次使用这个效果的时候都要做三件事:1. 导入这个组件;2. 注册组件;3. 在组件中使用这个Loading。这样显得特别麻烦。 那么希望能不用组件的形式,而是希望用指令的形式v-loading = isLoading。如下所示.
2021-09-04 11:11:18
154
原创 HTML标准的文档结构
HTML基本格式:<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="with=device-with initial-scale=1.0"&g
2021-08-21 11:02:02
361
1
转载 cookie和session的区别,localstorage和sessionstorage的区别
cookie和session的区别,localstorage和sessionstorage的区别参考回答:Cookie和session都可用来存储用户信息,cookie存放于客户端,session存放于服务器端,因为cookie存放于客户端有可能被窃取,所以cookie一般用来存放不敏感的信息,比如用户设置的网站主题,敏感的信息用session存储,比如用户的登陆信息,session可以存放于文件,数据库,内存中都可以,cookie可以服务器端响应的时候设置,也可以客户端通过JS设置cookie会在请求
2021-06-15 22:12:12
769
原创 浏览器跨域问题(详解)
一、开发环境的跨域 浏览器请求前端开发服务器,请求css、js,前端开发服务器会返回一个页面,浏览器会渲染页面,请求到的js里面会有一个ajax请求,这时请求的是另外一个服务器。 一般来说开发阶段会请求一个后端测试服务器,后端测试服器是后端开发人员开发好的里面都是测试数据,后端会给一个地址,比如http://test-data:3000/a
2021-06-03 23:41:27
2302
5
原创 Node.js基础
node.js是什么?node.js不是一门语言,不是库,不是框架,node.js是一个JavaScript的一个运行时环境; 以前只有浏览器才能够解析执行JavaScript代码,但是现在的JavaScript可以完全脱离浏览器来运行,因为node.js。 浏览器原来的JavaScript是ECMAScript,只有基本的语法,没有
2021-05-31 00:51:07
134
原创 vue的一些常用指令
响应式:利用Object.defineProperty实现数据劫持vue中哪种情况下页面不会渲染数据?未经过声明的声明,但未在DOM中使用的 <渲染页面,操作DOM 非常消耗性能>更改数据后,页面会立刻重新渲染吗?不会。页面渲染的操作是异步执行的在虚拟DOM中渲染的如果想要拿到渲染过后的DOM元素,使用vm.$nextTick() / Vue.nextTick()vue当中的一些缺点会一直等待主线程上的任务执行完毕,才会渲染,还有可能出现卡
2021-05-29 12:35:24
137
原创 面试题—手写promise、jsonp、new等各种原理
手写promiseclass Promise { constructor (fn) { // 三个状态 this.state = 'pending' this.value = undefined this.reason = undefined let resolve = value => { if (this.state === 'pending') { this.state = 'fulfilled' this.value = value } }let reject = value => {
2021-05-29 11:10:23
157
1
原创 函数柯里化—用展开运算符写函数柯里化原理
利用展开运算符写函数柯里化function cal(a,b,c,d){ return a + b * c - d; } // 利用展开运算符写柯里化 function curry(func,...args){ return function (...subArgs){ const allArgs = [...args,...subArgs]; i
2021-05-29 00:45:20
135
原创 笔记—canvas基本操作
canvascanvas一个画布,使用js操作的用css给canvas设置大小,这不是画布大小,要在行间样式上设置;var ctx = canvas.getContext(‘2d’); //这个属于画布上的画笔ctx.beginPath(); 一次画的开始(重新开启一个路径) //规范:开始之前加上beginPathctx.moveTo(100,100); //画的起点ctx.lineTo(200,100); //画到哪里ctx.stroke(); //可以将画渲染上去ctx.cl
2021-05-29 00:40:49
188
原创 手写防抖原理&&节流原理,亲历面试题
// 防抖:函数的防抖就是在函数需要频繁触发时,留有足够的空间,才会执行一次。 // 当一次事件触发完以后,隔了一段时间,都没有在触发这个事件,就执行var Inp = document.getElementById("Inp"); function debounce(handler, delay) { var timer = null; return function () { //返回一个函数 var _this = this, arg...
2021-05-28 00:59:34
122
原创 我的笔记—编程面试题大全
编程题:1、提示用户输入一个三位数,若不是三位数,则提示用户输入有误;若是三位数,则判断该数能否被13整除 let numbers = +prompt("请输入三位数字"); if(isNaN(numbers) || numbers > 999 || numbers < 100){ console.log("输入有误,请输入三位有效数字"); }else{ if(numbers % 13 == 0){ consol
2021-05-28 00:52:47
563
2
原创 CommonJs / ES6模块化 导出导入
模块化发展史:commonJS --> AMD --> CMD --> ES6node.js不支持ES6模块化模块的导出:什么是模块?模块就是一个JS文件,它实现了一部分功能,并隐藏自己的内部实现,同时提供了一些接口供其他模块使用。模块有两个核心要素:隐藏和暴露隐藏的是自己内部的实现暴露的是希望外部使用的接口任何一个正常的模块化标准,都应该默认隐藏模块中的所有实现,而通过一些语法或api调用来暴露接口 暴露接口的过程即模块的导出模块的导入:当需要使用一个模块时,使
2021-05-27 23:59:18
1218
原创 前端必会算法
前端算法1. 线性数据结构之数组1. 一维数据结构:(线性数据结构)2. 线性的数据结构强调存储于顺序3. 数组特性: 1. 存储在物理空间上是连续的 2. 底层的数组长度是不可变的 3. 数组的变量,指向了数组的第一个元素的位置。 - 数组 a = {1,2,3,4,5}; - a[1],a[2],a[3] 方括号表示存储地址的偏移 - 操作系统小知识:通过偏移查询数据性能最好4. 数组有一个很大的特性:数组定长 1. 内存的
2021-05-27 23:41:43
86
原创 DOM元素获取、事件
<DOM核心>字符串操作:includes() 判断是否包含某个属性Array。form() ; 该方法可以把一个类数组或者一个可以便利的对象转化为一个真正的数组tagName:得到的是元素名称 console.log(e.target.tagName);元素结构重构父元素.appendChild(元素):在某个元素末尾插入一个子元素;类似的方法:父元素.append(元素);父元素.insertBefore(待插入的元素,哪个元素之前);父元素.replac
2021-05-27 23:37:07
472
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人