自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 babel 详解

是一个 JavaScript 编译器。它是一个工具链,用于将 ECMAScript 2015+ 的语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。:把转换后的 AST 打印成目标代码,并生成。:遍历 AST ,babel 中最核心的是。:通过 parser 把源码转成。抽象语法树(AST)

2024-09-12 15:43:11 388

原创 webpack的热更新原理

启动webpack,生成compiler实例。compiler上有很多方法,比如可以启动webpack所有编译工作,以及监听本地文件的变化。使用express框架启动本地server`,让浏览器可以请求本地的静态资源。本地server启动之后,再去启动websocket服务,通过websocket,可以建立本地服务和浏览器的双向通信。这样就可以实现当本地文件发生变化,立马告知浏览器可以热更新代码啦!如果不了解websocket,建议简单了解一下websocket速成参考文章。

2024-09-11 17:09:36 1562

原创 webpack 代码优化

babel/plugin-transform-runtime:禁用了Babel自动对每个文件的runtime注入,而是引入@babel/plugin-transform-runtime,并且使所有辅助代码从这里引用。Preload只能加载当前页面需要使用的资源,Prefetch可以加载当前页面资源,也可以加载下一个页面需要使用的资源。打包代码时会将所有js文件打包到一个文件中,体积过大;如果只渲染首页,就因该只加载首页的js文件,其他文件不应该加载。分割文件:将打包生成的文件进行分割,生成多个js文件。

2024-09-10 17:28:56 992

原创 webpack 配置

基本配置已完成,有需要的。或者其他配置项补充即可。

2024-09-09 14:43:33 488

原创 vue 进阶

> b. 原理 — watch: 对劫持的数据进行观察后,触发相应回调 | computed: 收集依赖 => 数据劫持 => 触发重新计算。方案一:函数 - { { calcAdd(header) } };管道符 { { header | calcAdd } }挑战 => 动态化节点 - 条件判断 v-if | 组件 | 动态组件 | 结构化。方案二:v-text = ‘header’ v-html = ’ footer ’默认插槽的实现方式 => 整体插槽的聚合。

2024-08-28 16:38:02 369

原创 vue3 基础用法

b. MVC:把系统应用分为:model(操作的dom,数据结构)| view(渲染出来的视图dom)| controller(更新的调度)c.MVVM:model (操作的dom,数据结构) | view (渲染出来的视图dom) | viewModel。b.通过视图绑定事件来处理数据 => v-model :value @input。ii.i. 数据发生变化 => viewModel => 更改数字。ii.ii. 数据发生变化 => viewModel => 更新视图。

2024-08-28 10:56:05 492

原创 react-redux 及 常用中间件

redux: 用于数据状态管理,高效灵活的特性storedispatchactionstore其他组件可以通过订阅store中的状态,store来更新视图。

2024-08-20 11:48:53 272

原创 react 高阶组件

把通用的逻辑放在高阶组件中,对组件实现一致的处理,从而实现代码的复用。指向的是最外层容器组件实例的,而不是被包裹的组件,如果需要传递。如:权限控制,日志记录,数据校验,异常处理,统计上报等…举例,存在一个组件,需要从缓存中获取数据,然后渲染。,给原始组件包裹其他元素),从而加工出想要的组件。简称:HOC,至少满足下面一个条件。,做一些你想要的操作(比如:操作。作为参数,返回加工过的新组建。注意:高阶组件可以传递所有的。如果想一个高阶组件添加。通过对传入的原始组件。

2024-08-19 17:46:52 191

原创 react refs

返回的组件实例,如果是渲染组件则返回的是组件实例;,会使组件的实例或者DOM结构暴露,违反组件封装的原则。来更新组件,但是这种方式并不推荐,更多情况是通过。只需要在对应元素或组件中使用。中的元素是,对节点的引用可以在。对象接收到的是组件的挂在实例。在某些情况下,我们会通过使用。方法中创建react元素;注意:不能在函数组件上使用。设置的组件为一个类组件,属性,因为他们并没有实例。的方式进行重新渲染子组件。获取ref属性也是通过。

2024-08-19 15:36:41 407

原创 promise 详解

。Promise:译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大。方法接受一组 Promise 实例作为参数,包装一个新的Promise实例。方法也会返回一个新的Promise实例,该实例的状态为。实现多个请求合并在一起,汇总所有请求结果,只需设置一个。构造函数接受一个函数作为函数,该函数的两个参数分别是。只有的能到所有这些参数实例都返回结果,不管是。实例,包装成一个新的。实例,包装成一个新的。

2024-08-16 16:50:13 1026

原创 异步解析【异步,进程 & 线程,事件流,promise】

方向一:窗口(进程)间通信 —— storage,cookie => 多种存储的区别 => 回归项目。2.与JS引擎线程互斥的,当执行JS时,GUI渲染会被挂起,任务队列空闲的时候,才会执行GUI。2.把接收到的回调事件按照顺序加入到任务队列的队尾,做好排序,交给 js 引擎处理。请求当前用户可访问 => 请求数据是否可以获取 => 请求当前页面的数据。2.接受JS引擎分配的异步网络请求任务,并执行。2.接受JS引擎分配的定时器任务,并执行。2.处理待执行的事件,安排事件队列。

2024-08-16 12:42:13 255

原创 TypeScript 原理

【代码】TypeScript 原理。

2024-08-15 14:34:32 128

原创 TypeScript 详解

a.对比原理它是 JS 的一个超集,在原有的语法基础上,添加了可选静态类型和基于类的面相对象编程面相项目:TS - 面相解决大型项目中,架构以及代码,共建等复杂维护场景JS - 用于面相简单页面场景,脚本化语言自主检测:TS - 编译期间,主动发现并且纠正错误JS - 运行时报错类型检测:TS - 弱类型,支持动态,静态的类型检测JS - 弱类型,无类型选项检测运行流程TS - 依赖编译=>.ts —> .js —> 浏览器b.安装运行tsc - v。

2024-08-14 20:08:44 319

原创 函数式编程

加法结合律 a + b + c = ( a + b ) + c | 因式分解 | 完全平方公式水源 => 组合(水管 + 转接头) => 花洒。

2024-08-13 19:25:58 143

原创 浏览器JS对象

2.解析器 => DOM + CSSOM => layout tree => 首次布局。1.url => 请求资源 - 网络请求 + 地址解析。4.painting => 渲染 => 把内容绘制到屏幕上。标识页面元素区域信息的。5.后置重排 & 重绘。

2024-08-13 15:08:53 131

原创 JS模块化详解

JS本身是为了简单页面设计的补充:页面动画,表单提交,并不会内置命名空间或者模块化的概念。1.开始时:需要再页面中增加不同类型的js的文件,如:动画js,验证js,格式化js。随着业务的飞速发展,涌现除了大量的模块化的诉求 => JS模块化解决方案的出现。完成了一个模块的封装,实现了一个对外暴露功能,保留变量+不污染全局作用域。2.多种js为了维护和可读性,被分在了不同的js文件中。相比较一个js文件,多个js文件是最简单模块化的思想。AMD支持向前兼容,以提供回调的方式来加载同步模块。

2024-08-08 18:47:52 449

原创 js面相对象、原型原型链

constructor & 继承属性 来自于new => 形成了属性传递的链条。1.每个实例对象被创建时,会自动拥有一个证明身份的属性constructor。子类上生成__proto__,将prototype放入 => 形成原型链。2.constructor来自于原型对象,指向了构造函数的引用。原型链传递的原理 => Course.prototype。=> 如何进行优化?实例获得类的属性 => 继承了类的属性。=> 隔离 + 和外部关联的桥梁。对象 => 转化成模块。闭包 => 突破作用域。

2024-08-08 13:18:39 257

原创 Taro中路由动态传递参数

话不多说了,直接上代码吧写法和react一样,.bind绑定this把需要的参数传过去url 后跟的符号一定要注意,不是 ’ ’ ,也不是 " " , 是 上划线!!!!!新页面接收就这样!!!!!!!!...

2019-09-10 20:52:38 4734 1

空空如也

空空如也

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

TA关注的人

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