avatar
Articles
111
Tags
44
Categories
28

Home
Archives
Categories
DarylWxc
Home
Archives
Categories

DarylWxc

vue模板编译原理
Created2021-12-28|Web前端|前端框架•Vue
1.模板编译入口在初始化时,传入的options参数中有el属性,则进行模板渲染。其中主要的渲染函数为$mount()。//将模板挂载在HTML上进行render判断,template判断,什么情况下,最终都是将模板转换为render函数进行渲染。12345678910111213141516171819// 如果有el属性 进行模板渲染 if (vm.$options.el) { vm.$mount(vm.$options.el); }if (!options.render) { // 如果存在template属性 let template = options.template; if (!template && el) { // 如果不存在render和template 但是存在el属性 直接将模板赋值到el所在的外层html结构(就是el本身 并不是父元素) template = el.outerHTML; ...
防抖与节流
Created2021-11-22|web前端|JavaScript
防抖含义合并多次函数为一个 思路将目标方法包装在setTimeout里面,然后该方法是一个事件的回调函数,如果一直执行该回调,则通过clearTimeout将连续动作给删除,待不触发该事件时,setTimeout就会执行这个方法 使用场景页面resize需要做页面适配,需要根据页面最终情况做DOM渲染。或者input输入框在进行校验的情况下,只校验输入最后的结果。 简易实现123456789101112131415/** fn [function] 需要防抖的函数* delay [number] 毫秒,防抖期限值*/function debounce(fn,delay){ let timer = null //借助闭包 return function() { if(timer){ clearTimeout(timer) //进入该分支语句,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时 timer = setTimeout(fn,delay) ...
深入原型到原型链
Created2021-11-22|Web前端|JavaScript
原型是什么每个JS对象(null除外)都有一个属性__proto__,这个属性会指向该对象的原型。每个原型都有一个构造函数(constructor),构造函数的prototype指向实例原型。 原型链原型与实例通过__proto__串起来的关联结构就是原型链。 Object.create()Object.create()方法该函数从指定原型对象创建一个新的对象。以参数对象(或null)为原型对象创建一个新对象,用常理会报错。
React学习与应用
Created2021-09-28|前端|前端开发
1.项目搭建1.1 脚手架搭建项目npm正常拉框架 1.2 手动敲打Demo书写声明不同方式的组件function Name(props){ return 代码块}class Name extends React.Component{ render (){ return (代码块)}}可以在class内声明构造函数,construstor(props){super(props);this.state={}}state必须为对象或Null切有对应的声明周期钩子(类似vue):1.componentWillMount()挂载到DOM前调用,只调用一次2.componentDidMount()挂载到DOM后调用,只调用一次3.shouldComponentUpdate(nextProps)//用于重新render的情况,更新props4.componentWillReceiveProps(nextProps)//用于将props转换成自己的state,此函数下调用setState不会引起二次渲染5.componentWillUpdate(ne ...
RealDom和VirtualDom
Created2021-06-29|DOM|前端学习
1. 是什么RealDom:真实DOM,文档对象模型。VirtualDom:以JS对象形式存在的对DOM的描述虚拟DOM为了将虚拟的节点渲染到页面视图中,虚拟DOM对象的节点与真实DOM的属性一一照应。 2. 区别 虚拟DOM不会进行排版与重绘,真实DOM会频繁触发 虚拟DOM的总损耗是”虚拟DOM增删改”+真实DOM差异增删改+排版与重绘——真实DOM的总损耗是“真实DOM完全增删改”+ 排版与重绘简单说:改真实DOM会全部计算,改虚拟DOM会有缓存和部分计算 3. 优缺点真实DOM优:易用缺:效率低,解析速度慢,内存占用量过高性能差,频繁操作易导致重绘与回流虚拟DOM优:简单方便,性能提高,跨平台缺:个别性能要求极高的应用中虚拟DOM无法进行针对性的机制优化首次渲染大量DOM时,多了一层虚拟DOM计算,速度稍慢
Webpack
Created2021-04-27|Web前端|工程化•webpack
1. 背景实现模块化,更高效管理和维护项目的每一个资源。 模块化最早是将功能及其相关状态数据各自单独放到不同的JS文件中,然后分别引入到页面。一个script对应一个模块。但是模块都是在全局中工作,大量模块成员污染了环境,模块与模块之间没有依赖关系、维护困难、没有私有空间等问题。如今流行使用CommonJS、ES Modules 2. 问题 通过模块化的方式来开发 使用一些高级的特性来加快我们的开发效率或者安全性,比如通过ES6+TypeScript开发脚本逻辑,通过sass、less编写样式 监听文件的变化来反映到浏览器上,提高开发效率 JS代码需要模块化,HTML和CSS这些资源文件也会面临需要被模块化的问题 开发完成后将代码进行压缩、合并以及其他相关的优化 3. 是什么?用于现代JS应用程序的静态模块打包工具。将可以被webpack直接引用的资源打包(bundle.js)内部构建一个依赖图,反射到各个模块,生成一个或多个bundle。 编译代码能力,提高效率,解决浏览器兼容问题 模块整合能力,提高性能,可维护性,解决浏览器频繁请求文件的问题 万物皆可模块能力,维护性增强 ...
CSS预处理器
Created2021-04-26|页面样式|CSS
1. 是什么?扩充了CSS语言,增加了变量、混合、函数等功能,让CSS更易维护、方便。本质上预处理是CSS的超集,包含一套自己的语法,最后解析成CSS。 2. 有哪些?sass最早最成熟的Css预处理器,全面兼容Css的scss。后缀为.sass与.scss,可以严格按照sass的缩进方式省去大括号和分号。 less比如sass,可编程功能不够,优点是兼容CSS,影响了SASS演变到了Scss时代。 stylusStylus是一个Css的预处理框架,2010年产生,来自Node.js社区,主要用来给Node项目进行预处理支持。新型语言,可以创建健壮的、动态的、富有表现力的Css。 3. 区别常用特性: 变量(variables)@($)red:#c00;strong{color:@red} 作用域(scope)sass无全局变量 代码混合(mixins) 12345678910111213.alert { font-weight: 700;}.highlight(@color: red) { font-size: 1.2em; color: @ ...
设置小于12PX的字体
Created2021-04-23|页面样式|CSS•字体
1. 背景Chrome中默认最小字号是12px,英文版无限制。 2. zoom123456789101112131415<style type="text/css"> .span1{ font-size: 12px; display: inline-block; zoom: 0.8; //使用zoom缩小字体 } .span2{ display: inline-block; font-size: 12px; }</style><body> <span class="span1">测试10px</span> <span class="span2">测试12px</span></body> zoom的兼容性不高 3. -webkit-transform:scale针对Chrome浏览器,加we ...
CSS视差滚动
Created2021-04-21|页面样式|CSS
1. 视差滚动指多层背景以不同的速度移动,形成立体的运动效果。分三层:悬浮层、内容层、背景层 2. 实现方式css实现: background-attachment transform:translate3D background-attachment设置背景图像是否固定或者随着页面的其余部分滚动 scroll:默认值,背景图像会随着页面其余部分的滚动而滚动 fixed:当页面的其余部分滚动时,背景图像不会移动 inherit:继承父元素background-attachment属性的值123456789div{ height:100vh .a-img1{ background-image:url(...); background-attachment: fixed; background-size: cover; background-position: center center; }} transform:translate3Dperspective:css3属性,当元素涉及3d变 ...
JS常见考点
Created2021-04-20|Web前端|前端学习•面试
JS常见类型有哪些?String,Number,symbol,boolean,bigint,null,undefined 大数相加、相乘算法题可以直接使用bigint,当然再加上字符串的处理会更好NaN如何判断isNaN() JS类型如何判断除null用typeof,instanceof判断对象,Object.prototype.toString.call instanceof原理通过原型链查找该对象是否有与另一个对象相同的原型 手写instanceof类型转换[] == ![] //->true![] -> false -> 0[].toString -> ‘’ -> Number(‘’) -> 0 this指向问题123const a = {b:2,foo:function(){console.log(this.b)}}function b(foo){foo()}b(a.foo) 输出函数b 闭包12345for(var i = 0;i < ...
1…567…12
avatar
DarylWxc
Articles
111
Tags
44
Categories
28
Follow Me
Announcement
My favorite music type is melodic progressive house
Recent Post
DL-noted2025-05-13
BCDA-noted2025-05-07
Symbols-in-English2024-11-03
Database-Notes2024-11-03
react-porject-build2024-10-24
Categories
  • Back-End1
  • Class2
  • DOM1
  • English1
  • Entertainment1
  • Note2
  • Personality14
  • UI设计开发5
Tags
Music 前端框架 面试 notes 网络安全 learning diary Typescript 伸缩布局 Vue JavaScript 开发者工具 Axure Web性能 Drama CSS 设计模式 Studying javaScript 工作职责 单页面与多页面应用 正则表达式 移动端开发 响应式布局 代码管理 record 字体 HEXO 测试 webpack 前端开发 函数 原型设计 版本管理 前端 学习需求 Database 工程化 前端学习 ES6
Archives
  • May 20252
  • November 20242
  • October 20242
  • September 20241
  • January 20241
  • November 20233
  • October 20233
  • September 20231
Info
Article :
111
UV :
PV :
Last Push :
©2019 - 2025 By DarylWxc

Static Badge Static Badge Static Badge