04 2020 档案
摘要:0.有哪些常见的Loader?你用过哪些Loader? (我开始熟悉的报起了菜名) raw-loader:加载文件原始内容(utf-8) file-loader:把文件输出到一个文件夹中,在代码中通过相对 URL 去引用输出的文件 (处理图片和字体) url-loader:与 file-loader
阅读全文
摘要:理解Vue中的scoped实现原理及穿透方法 何为scoped 在vue文件中的style标签上,有一个特殊的属性:scoped。当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件,也就是说,该样式只能适用于当前组件元素。通过该属性,可以使得组件之间的样式不互相污染。如
阅读全文
摘要:在2019.10.5日发布了Vue3.0预览版源码,但是预计最早需要等到 2020 年第一季度才有可能发布 3.0 正式版。 可以直接看 github源码。 新版Vue 3.0计划并已实现的主要架构改进和新功能: 编译器(Compiler) 使用模块化架构 优化 "Block tree" 更激进的
阅读全文
摘要:我们的浏览器执行越来越多的特性,并且网络逐渐向移动设备转移,使我们的前端代码更加紧凑,如何优化,就变得越来越重要了。前端给力的地方是可以有 许多种简单的策略和代码习惯让我们可以保证最理想的前端性能。我们这个系列的主题就是要告诉你9种代码小技巧,只需要一分钟,就可以优化你现有的代码。 使用Docume
阅读全文
摘要:1. 简单描述下微信小程序的相关文件类型 微信小程序项目结构主要有四个文件类型 WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件 WXSS (WeiXin Style Sheets)是一套
阅读全文
摘要:函数式编程 百科定义: 函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 个人理解就是我们的编程是以函数作为单元来处理各个业务逻辑,函数既可以当做参数传来传去,也可以
阅读全文
摘要:日常开发过程中,滚动事件做复杂计算频繁调用回调函数很可能会造成页面的卡顿,这时候我们更希望把多次计算合并成一次,只操作一个精确点,JS把这种方式称为debounce(防抖)和throttle(节流) 函数防抖 当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间到来之
阅读全文
摘要:一、闭包 由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,闭包就是能够读取其他函数内部变量的函数。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。 比如下面的代码: function f1() { var n = 999; function f2() { co
阅读全文
摘要:前言 作为ES6处理异步操作的新规范,Promise一经出现就广受欢迎。面试中也是如此,当然此时对前端的要求就不仅仅局限会用这个阶段了。下面就一起看下Promise相关的内容。 Promise用法及实现 在开始之前,还是简单回顾下Promise是什么以及怎么用,直接上来谈实现有点空中花园的感觉。(下
阅读全文
摘要:javaScript事件的三个阶段:捕获阶段 目标阶段 冒泡阶段 捕获阶段 概念: 事件从根节点流向目标节点,途中流经各个DOM节点,在各个节点上触发捕获事件,直到达到目标节点。 目标阶段 概念: 事件到达目标节点时,就到了目标阶段,事件在目标节点上被触发 冒泡阶段 概念: 事件在目标节点上触发后,
阅读全文
摘要:WebSocket和Socket区别 可以把WebSocket想象成HTTP(应用层),HTTP和Socket什么关系,WebSocket和Socket就是什么关系。 HTTP 协议有一个缺陷:通信只能由客户端发起,做不到服务器主动向客户端推送信息。 WebSocket 协议 它的最大特点就是,服务
阅读全文
摘要:Generator 函数 Generator函数是将函数分步骤阻塞 ,只有主动调用next()才能进行下一步。 dva 中异步处理用的是 Generator async 函数 简单的说async函数就相当于自执行的Generator函数,相当于自带一个状态机,在 await 的部分等待返回, 返回后
阅读全文
摘要:阿里 使用过的Koa2中间件Koa-body原理介绍自己写过的中间件有没有涉及到Cluster介绍Pm2Master挂了的话Pm2怎么处理如何和MySQL进行通信React声明周期及自己的理解如何配置React-Router路由的动态加载模块服务端渲染SSR介绍路由的History介绍Redux数据
阅读全文
摘要:路由懒加载 当打包构建应用时,Javascript 包会变得非常大,影响页面加载速度。如果我们能把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。 结合 Vue 的异步组件和 Webpack 的代码分割功能,轻松实现路由组件的懒加载。如: 1 const
阅读全文
摘要:利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法。我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站。 使用 CSS 实现垂直居中并不容易。有些方法在一些浏览器中无效。下面我们看一下使对象垂直集中的5种不同方法,以及它们各自的优缺点。(可以看看测试页面,有简短
阅读全文
摘要:正文-弹性布局flex 弹性布局的作用有点儿类似 Android 中 LinearLayout 和 RelativeLayout 两者的合成版,即:支持横向布局,纵向布局,start,end,center 布局,宽高按比例瓜分等等,当然它还有很多其他功能,比如自动换行,按指定 order 排列等。总
阅读全文
摘要:1.CSS 盒子模型(Box Model) 所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:外边距(margin)、边框(border)、内边距(padding)、实际内容(content
阅读全文
摘要:1、userdata存储,只适用于ie,每个页面只能存储64kb,该域名网站最多存储640kb; userdata重点使用语法: UserData.o = document.createElement('input'); UserData.o.type = "hidden"; UserData.o.
阅读全文
摘要:1.charAt 返回指定索引出的字符 var str='abcd'; var a=str.charAt(0); console.log(a); //'a' console.log(str); //'abcd'2.charCodeAt 返回指定索引出的unicode字符 str.charCodeAt
阅读全文
摘要:Object.assign() 通过复制一个或多个对象来创建一个新的对象。 Object.create() 使用指定的原型对象和属性创建一个新对象。 Object.defineProperty() 给对象添加一个属性并指定该属性的配置。 Object.defineProperties() 给对象添加
阅读全文
摘要:创建一个数组: ? 1 2 3 4 5 6 7 8 // 字面量方式: // 这个方法也是我们最常用的,在初始化数组的时候 相当方便 var a = [3, 11, 8]; // [3,11,8]; // 构造器: // 实际上 new Array Array,加不加new 一点影响都没有。 var
阅读全文
摘要:最近几年,大屏幕手机和ipad等移动设备的流行,使你的网页兼容移动设备已成为一种流行!移动设备的屏幕大小是五花八门,各式各样!要想很好的兼容移动设备,Css3的media技术是功不可没。 我的博客,应用了CSS3的media技术,使其在手机等移动设备上面也可以查看。当然,只凭css3的media技术
阅读全文
摘要:1、 安卓浏览器看背景图片,有些设备会模糊。 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了48
阅读全文
摘要:先说说http1.0 http1.0 HTTP 协议老的标准是HTTP/1.0,为了提高系统的效率,HTTP 1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接,服务器不跟踪每个客户也不记录过去的请求。但是,这也造成了一
阅读全文
摘要:跨域的概念 跨域大家都知道,不同地址,不同端口,不同级别,不同协议都会构成跨域。例如:about.haorooms.com和www.haorooms.com都会构成跨域。总结起来只要协议、域名、端口有任何一个不同,都被当作是不同的域。下面举例,每两个一组。 URL 说明 是否允许通信 http://
阅读全文
摘要:1、xss跨站脚本攻击(原理、如何进行的、防御手段是什么,要说清楚) 2、CSRF跨站请求伪造(如何伪造法?怎么防御?等等都要说清楚) 3、sql脚本注入(注入方式,防御方式) 4、上传漏洞 (防御方式) 1.xss攻击 xss攻击又叫做跨站脚本攻击,主要是用户输入或通过其他方式,向我们的代码中注入
阅读全文
摘要:什么是"前端工程化"? 目前来说,web业务日益复杂化和多元化,前端开发从WebPage模式为主转变为WebApp模式为主了。前端的开发工作在一些场景下被认为只是日常的一项简单工作,或只是某个项目的"附属品",并没有被当做一个"软件"而认真对待(无论是产品负责人还是开发者)。 在模式的转变下,前端都
阅读全文
摘要:一、前端工程化 关于前端工程化,是一个很大的命题,你在知乎上搜索前端工程化,会有一些文章,这些文章可以帮助你理解前端工程化。 说一下我理解的前端工程化吧,前端工程化不单单包括前端的模块化、组件化、自动化,还包括前端性能优化,前端目录规划,前端规范化,自动化测试,发布等等一系列知识。这里我就不一 一介
阅读全文
摘要:第 1 题:(滴滴、饿了么)写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么? 1. 更准确因为带key就不是就地复用了,在sameNode函数 a.key b.key对比中可以避免就地复用的情况。所以会更加准确。 2. 更快利用key的唯一性生成map对象来获取对应节
阅读全文
摘要:JS篇 2.什么是函数柯里化? 答:是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。把接受多个参数的函数转换成接受一个单一参数的函数 // 普通方法 var add = function(x, y) { return x
阅读全文
摘要:Vue实例有一个完整的生命周期,也就是说从开始创建、初始化数据、编译模板、挂在DOM、渲染-更新-渲染、卸载等一系列过程,我们成为Vue 实例的生命周期,钩子就是在某个阶段给你一个做某些处理的机会。 生命周期图.jpg 生命周期文字解析.jpg beforeCreate( 创建前 ) 在实例初始化之
阅读全文