自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

前端-黎姿

坚持学习,每天进步

  • 博客(136)
  • 收藏
  • 关注

原创 下载的方法总结

https://www.cnblogs.com/ruimintan/p/14229532.htmlhttps://www.cnblogs.com/tcz1018/p/14073558.htmlhttps://blog.csdn.net/qq_34543252/article/details/105411422

2021-06-11 19:43:42 261

原创 Axios请求头中常见的Content-Type及其使用

https://www.cnblogs.com/jdWu-d/p/12036528.html

2021-06-11 19:04:38 389

原创 使用finalshell将前端dist文件部署到服务器

以前都是打包后丢给别人,到新公司需要前端自己部署,第一次部署记录下下载finalshell用于连接服务器配置finalshellcd 到下图文件路径3. 将要部署的dist(最新项目build之后的文件)压缩文件上传进去替代先前最好先删除之前的dist包该指令为强制删除文件指令4. 解压dist包注意:在服务器上的文件是tar.gz文件,我window上解压的文件是rar文件,故下载了7-zip将dist文件夹解压成tar再解压成tar.gz文件...

2021-05-18 17:27:47 2183

原创 面试题之事件循环

以前一看到这些js深层原理的文章觉得很难理解,现在看的文章多了,慢慢发现也没有很难。所以遇到困难不要怕,迎难而上,有些文章会讲解的比较通俗易懂,慢慢就懂了~~~加油!!JavaScript 是单线程的,,可是浏览器又能很好的处理异步请求,那么到底是为什么呢?浏览器执行线程在解释事件循环之前首先先解释一下浏览器的执行线程:浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程,其中浏览器渲染进程(浏览器内核)属于浏览器多进程中的一种,主要负责页面渲染,脚本执行,事件处理等其包含的线程有:G

2021-04-09 12:18:38 305

原创 面试题之js内存机制

js类型在js中,js的类型分为两个大类,分别是基本数据类型和引用数据类型。我们暂时先抛开ES6不说,先只说在ES5中的类型。在ES5中有5中简单数据类型(也就是上面说的基本数据类型):Undefined、Null、Boolean、Number和String。还有1种复杂的数据类型————Object,Object本质上是由一组无序的名值对组成的。其中可以算在object中的还有Array和Function。在内存当中,基本数据类型存放在栈中,引用数据类型存放在堆中。说到这里就要说一下内存空间了,一般来

2021-04-09 11:10:52 301

原创 面试题之移动端适配

面试问到移动端,适配是必问的了,今天在此总结一下移动端适配解决方案一、 viewport(scale=1/dpr)<meta name="viewport" content="width=device-width; initial-scale=1; maximum-scale=1; minimum-scale=1; user-scalable=no;">各个属性的含义:device-width等于理想视口的宽度,设置width=device-width就相当于让布局视口等于理想视口

2021-04-08 11:56:52 2722

转载 面试题之浏览器原理

一、构成浏览器作为一个客户端,也是使用最广的一款软件,主要使用c++代码编写,他的主要构成:1. 用户界面:包括地址栏、后退/前进按钮、书签目录、刷新按钮等。也就是除了显示请求内容的主窗口之外的部分。2. 浏览器引擎:用来查询和操作渲染引擎的接口。3. 渲染引擎(呈现引擎):用来处理资源内容,并显示处理结果,也就是我们所说的内核。4. 网络:完成网络调用。**5. UI后端 : **底层使用操作系统的用户接口,具有不特定平台的通用接口。6. js解析器 :解释执行js脚本。**7

2021-04-07 15:12:07 496

原创 面试题之http缓存策略

面试被问到说一下缓存策略,说不出什么东西惭愧,特此学习记录所谓的http缓存,就是浏览器自己给你的一个功能,一个缓存数据库,夹在服务端和客户端中间,你只需要设置一些参数即可实现 缓存/不缓存/时效内缓存/时效外缓存等(默认存在缓存)上两张形象的图片:第一次请求:非第一次请求:以上面这两张图为基础,可以简单的讲讲http缓存,应付面试绝对够了:首先你得了解输入url到看见页面,发生了什么(这个也是面试经常问的!!网上的解答也不太一样,其实这个能用自己的话说出来就可以)1、首先,在浏览器地址

2021-04-06 10:16:50 497

原创 js面试题

改变this指向的方法有什么?有什么区别call:第一个参数:this指向,如果要传参,后面依次是参数,cal 的特点就会直接调用函数apply:参数 1 是一样的 需要改变this指向的地方,参数 2 数组,特点 第二个参数是一个数组,它自己会把数组摊开,按照下标作为实参传给对应函数的形参bind:bind 只改变this指向 需要手动调用 ! ! !创建对象方法new 操作符 + Object 创建对象字面式创建对象;如var person ={name: “lisi”,a..

2021-04-02 18:04:49 211

转载 typescript面试题

什么是Typescript?Typescript是强类型的Javascript超集,支持ES6语法,支持面向对象编程的概念,如类、接口、继承、泛型等。Typescript并不直接在浏览器上运行,需要编译器编译成纯Javascript来运行。说说Typescripy和Javascript的区别?3. 说说Typescript的优缺点?优点:1:快速简单,易于学习。2:编译时提供错误检查, 在代码运行前就会进行错误提示。3:支持所有的JS库。4:支持ES6,提供了ES6所有优点和更高的.

2021-04-01 18:03:42 1461

原创 vue和react的diff算法对比

【框架对比】React和Vue的diff算法

2021-04-01 14:42:25 434

转载 vue和react对比

面试多次被问到vue和react的对比,今天就总结一下一、监听数据变化的实现原理不同Vue通过 getter/setter以及一些函数的劫持,能精确知道数据变化。React默认是通过比较引用的方式(diff)进行的,如果不优化可能导致大量不必要的VDOM的重新渲染。为什么React不精确监听数据变化呢?这是因为Vue和React设计理念上的区别,Vue使用的是可变数据,而React更强调数据的不可变,两者没有好坏之分,Vue更加简单,而React构建大型应用的时候更加鲁棒。二、数据流的不同Reac

2021-03-31 17:35:44 955

原创 js递归

昨天面试被问到,要改变一个树形结构里面对象的所有key,不知道数据长度怎么做答案:递归自己调用自己,然后使用object.keys方法改变key例子:数据的结构var data = [{ id: 1, name: '家电', goods: [{ id: 11, gname: '冰箱', goods: [{

2021-03-31 09:45:51 2113

原创 Mobx

react状态管理库:mobx

2021-03-30 15:58:48 182

原创 react的hoc

简单的讲,Higher-Order Components就是一个函数,传给它一个组件,它返回一个新的组件。官网的定义:组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件的函数。const EnhancedComponent = higherOrderComponent(WrappedComponent);我们可以通过高阶组件来实现一个

2021-03-29 17:49:01 494

原创 vue和react的vnode区别

一、vue和react的vnode区别virtual DOM不一样,vue会跟踪每一个组件的依赖关系, 不需要重新渲染整个组件树.​​而对于React而言,每当应用的状态被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制。两者对于dom的更新策略不太一样, react采用自顶向下的全量diff,vue是局部订阅的模式。二、两者diff算法区别1.Vue进行diff时,调用patch打补丁函数,一边比较一边给真实的DOM打补

2021-03-29 11:43:22 471

原创 纯函数

定义纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。所以我们可以看出纯函数的定义:相同输入必定能得出相同输出。函数执行过程中没有任何副作用。辨认纯函数/** * 下面例子是个正例(Positive ), * 我们可以看出slice函数输入相同的情况下输出必定相同, * 而且并不会对array造成影响(内部元素并不会变化)并且也不会对其他环境造成可预见的影响, * 所以我们可以说slice是纯函数 **/let array = [0,1,2,3,4

2021-03-29 09:22:33 163

原创 节流和防抖

一、节流定义:被高频触发的事件,在n秒内一定会且只会执行一次应用例如(在服务器不行的时候)搜索框的关键词提示搜索在一定时间内只提示一次// 节流实现function throttle(func){ // 设置专属的函数执行状态管理 let isRunning = false; return function(){ // 如果已经有计时器在执行了就不执行事件处理 if(isRunning) return; // 在设置计时器之前

2021-03-28 15:28:00 120

原创 前端jquery、vue、react之性能优化

一、jquery选择器性能优化建议总是从#id选择器来继承这是jQuery选择器的一条黄金法则。jQuery选择一个元素最快的方法就是用ID来选择了。$( ‘#content’ ).hide();或者从ID选择器继承来选择多个元素:$( ‘#content p’ ).hide();在class前面使用tagjQuery中第二快的选择器就是tag选择器(如$(‘head’)),因为它和直接来自于原生的Javascript方法getElementByTagName()。所以最好总是用ta

2021-03-28 15:05:52 924

原创 react的hook

为什么会有Hooks?介绍Hooks之前,首先要给大家说一下React的组件创建方式,一种是类组件,一种是纯函数组件,并且React团队希望,组件不要变成复杂的容器,最好只是数据流的管道。开发者根据需要,组合管道即可。也就是说组件的最佳写法应该是函数,而不是类。。但是我们知道,在以往开发中类组件和纯函数组件的区别是很大的,纯函数组件有着类组件不具备的多种特点,简单列举几条纯函数组件没有状态纯函数组件没有生命周期纯函数组件没有this只能是纯函数这就注定,我们所推崇的函数组件,只能做UI展示的功

2021-03-15 17:39:43 201

原创 react受控组件与非受控组件

一、受控组件<input type="text" value={this.state.value} onChange={(e) => { this.setState({ value: e.target.value.toUpperCase(), }); }}/>或都要绑定一个change事件;每当表单的状态发生变化,都会被写入组件的state中,这种组件在React中被称为受控组件;在受控组件中,

2021-03-12 18:10:14 332

原创 微信小程序weui的使用

官方文档一、前言WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。包含button、cell、dialog、 progress、 toast、article、actionsheet、icon等各式元素。二、下载git 下载:weui点击链接进入 GitHub ,进入下面的页面,点击 Code 选择方式进行下载。下载好打开应该是这个样子的:使用:样式文件可直接引用dist/style/weui.wxss,或者

2021-03-08 10:10:56 1259

原创 小程序之websocket

使用之前肯定首先要了解一下websocket是什么,简单来讲websocket就是客户端与服务器之间专门建立的一条特殊通道,请求只需要请求一次,而且还可以从通道实时获取服务器数据,非常适合应用到实时应用上。**wx.connectSocket(OBJECT)**创建一个 WebSocket连接;一个微信小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。OBJECT参数说明:示例代码:**wx

2021-03-03 18:00:20 343 1

原创 小程序传值

一、小程序通过id属性传值当我们在标签上添加id属性进行传值,可以在当前标签添加点击事件来获取id中的值。1、添加 id 属性进行传值(index.wxml)<!--index.wxml--><view class="container"> <view class="usermotto"> <!-- 传入普通字符串数值 --> <button class="user-motto" bindtap="onGetIdValue" i

2021-03-02 10:07:58 686

原创 小程序版本更新

相关知识点:知识点1: 当用户点击左上角关闭,或者按了设备Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台,只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。知识点2: 小程序的启动分为"冷启动" 和 “热启动”.热启动是指: 小程序打开后,在一段时间内(目前:5分钟)再次被打开,此时会将后台的小程序切换到前台。冷启动是指: 小程序首次打开或销毁后再次被打开知识点3: 更新版本冷启动时, 如果发现有新版本,将会异

2021-03-01 14:27:10 165

原创 微信小程序分包加载

分包加载的原因:a. 单个包超2m,微信小程序规定单个包或者主包的大小不能超过2M;整个小程序所有分包的大小不能超过8M;b. 微信小程序的项目随着不断地迭代,功能越来越多,代码包相应越来越大,主包体积过大,就会影响用户进入小程序时候的体验,所以要尽可能的减少主包的大小,对代码包进行分包处理,需要的时候再去加载,也可以在进入某些页面之后再去预加载分包数据上代码:export default class extends wepy.app { config = { pages: ..

2021-03-01 14:16:05 965

原创 封装微信小程序的请求

1.方法封装(新建文件夹util,工具文件,在文件夹下创建request.js文件,用于对方法封装)var app = getApp();//项目URL相同部分,减轻代码量,同时方便项目迁移//这里因为我是本地调试,所以host不规范,实际上应该是你备案的域名信息var host = 'http://localhost:8081/demo/';/** * POST请求, * URL:接口 * postData:参数,json类型 * doSuccess:成功的回调函数 * doFail

2021-03-01 11:56:17 141

原创 微信小程序微信支付

先上实用的相关代码:<!--index.wxml--><button bindtap='pay' >pay</button>Page({ pay: function () { console.log('ss') var that = this wx.request({ url: '(这里当然是从服务器获取后端的连接了..哈哈)/pay.php', method: 'POST', heade

2021-03-01 11:45:06 139

原创 微信小程序原理

小程序本质就是一个单页面应用,所有的页面渲染和事件处理,都在一个页面内进行,但又可以通过微信客户端调用原生的各种接口;它的架构,是数据驱动的架构模式,它的UI和数据是分离的,所有的页面更新,都需要通过对数据的更改来实现;它从技术讲和现有的前端开发差不多,采用JavaScript、WXML、WXSS三种技术进行开发;功能可分为webview和appService两个部分;webview用来展现UI,appService有来处理业务逻辑、数据及接口调用;两个部分在两个进程中运行,通过系统层JSBri.

2021-03-01 11:18:19 775

原创 http面试题汇总

http请求方法a. http 1.0: get, post, head(只返回响应头内容)b. http 1.1: 新增了5中请求方法:option, put, patch, delete(删除指定页面), trace, connecthttp状态码有什么100继续,200成功,301(资源永久移除到其它url)307(临时重定向)400(客户端错误,请求包含语法错误或请求无法完成)500(服务端错误)跨域底层原理:Webpack Proxy工作原理(本地跨域)首先强调的是w..

2021-01-20 11:28:36 228

原创 es6面试汇总

es6的继承是什么?先创建父类的实例this,通过class, extends, super关键字定义子类,并改变this的指向,super本身是指向父类的构造函数但函数返回的是子类的实例,实际上做了父类。Prototype.constructor.call(this)做对象调用时指向父类prototype,从而实现继承。解构对象es6用了什么(1)let和const声明变量(2)数组\对象\字符串的解构赋值(匹配模式,只要等号两边的模式相同,左边的变量就会被赋予相应的值,如果解 ..

2021-01-19 15:19:13 119

原创 其它常见面试题汇总

flex布局方法有什么?一共6个,Flex-direction\flex-wrap\align-item\justyfy-content\align-content\flex-flow后台接口没那么快做好怎么办?用mock要开启服务器用了less和sass的什么(1)嵌套(2)继承(3)混合(4)arguments变量(5)模式匹配性能优化?vue项目,jquery项目,react项目,小程序前端加密jquery的方法实现disabled$(#div)..

2021-01-12 17:50:00 152

原创 小程序面试题

小程序代码超2怎么办?分包加载,在app.jsonsubPackages声明项目分包结构。小程序状态维护:采用session验证机制:(1)通过wx.login获得凭证code(2)通过wx.request()将code发往服务端,在服务端使用code去换取用户的唯一标识openid和会话密钥(session_key)(3)生成3rd-session(4)在客户端用storage来保存session id(5)通过wx.checkSession()来校验session_key是否过期.

2021-01-12 17:39:53 377

原创 webpack面试题

webpack是什么Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。Webpack 五个核心概念1、Entry: 入口(Entry)指示webpack以那个文件为入口起点开始打包,分析构建内部依赖。2、Output:输出(Output)指示webpack打包后的资源bundles输出到哪里去,以及如何命名。3、Loader:Loader让Webpack能够去处理那些非js文件。4、Plugins:插件(Plugi.

2021-01-11 18:10:02 524

原创 vue.js面试题总结

经过多次面试,发现面试官问的很多问题是重复的,写篇博客总结归纳下,准备下次的面试,也便于下次复习在vue项目中怎么自适应a.安装flexibleb. 安装postcss-px2rem参考博客:https://blog.csdn.net/weixin_45443118/article/details/108793542?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161033203816780277053547%2522%252

2021-01-11 14:53:23 232

原创 js 对时间排序

一、sort()方法var data = [{name:‘1’,time:‘2019-04-26 10:53:19’},{name:‘2’,time:‘2019-04-26 10:51:19’},{name:‘3’,time:‘2019-04-26 11:04:32’},{name:‘4’,time:‘2019-04-26 11:05:32’}]data.sort(function(a,b){return a.time < b.time ? 1 : -1});二

2021-01-05 09:07:31 8163 1

原创 js的map, filter,some,every,find的区别

一、map():通过指定函数处理数组的每个元素,并返回处理后的数组。var numbers = [4, 9, 16, 25];23 function myFunction() {4 console.log(numbers.map(Math.sqrt)); // 2,3,4,55 }map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回。传入的function可以有自己的三个形参,currentValue, index,arr分别代表当前元素,元素索引,元素所

2021-01-04 18:09:11 1011

原创 js的for循环

一、for循环for(var num = 1;num<10;num++){console.log(num);//1,2,3,4,5,6,7,8,9}**二、while循环 **var num = 1;//1、声明循环变量while (num<10){//2、判断循环条件;console.log(num);//3、执行循环体操作;num++;//4、更新循环变量;}三、do-while循环while循环特点:先判断后执行;do-while循环特点:先执行再判断,即使初始

2021-01-04 17:53:24 4747 1

原创 数组去重简单方法总结

一、for循环嵌套,利用splice去重function newArr(arr){for(var i=0;i<arr.length;i++){for(var j=i+1;j<arr.length;j++){if(arr[i]==arr[j]){//如果第一个等于第二个,splice方法删除第二个arr.splice(j,1);j–;}}}return arr;}var arr = [1,1,2,5,6,3,5,5,6,8,9,8];console.log(newArr

2021-01-04 17:09:32 92

原创 对数组,对象属性排序

一、数组排序方法:sort()方法eg:var arr = [22,12,3,43,56,47,4];arr.sort();console.log(arr); // [12, 22, 3, 4, 43, 47, 56]注意:JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一

2021-01-04 17:00:53 1264

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除