暂时未有相关云产品技术能力~
擅长 前端/Rust/AI
a. 前言 b. OSI七层协议 c. 传输层 • 有状态的TCP协议 • 三次握手--建立有效通信 • 为什么要三次握手 • 四次挥手--断开连接 • 为什么要四次挥手
a. 组件封装 • RenderProps增强版 • Web Component • 配置化(LCD) b. 逻辑复用 • 中间件(MiddleWare) • Redux Thunk • 监听history • stateComponment
a. React是什么 • 前端场景下MVC架构 • Flux设计模式 • Redux + React = MVC b. JSX • 手动实现一个JSX转换器
• 1.内存的生命周期 • 2.堆和栈 • 栈:静态内存分配 • 堆:动态内存分配 • 示例 • 3.JS中的引用 • 示例 • 4.垃圾回收 • 引用计数 • 标记清除 • 5.内存泄漏 • 将变量挂载到全局变量 • 关闭定时器和清除回调函数 • 清除DOM 引用
• 1.JS如何在浏览器中运行 • 调用栈 • 堆栈溢出 • Web APIs • 回调队列 • 事件循环 • setTimeout(fn,0) • 工作队列和异步代码 • Promises • promises适合在哪里
React Fiber生命周期及架构
头部补零右移运算符
随着数字时代的到来,可以说一切的生活,都是基于网络的。而在有些特定的场景中,涉及到私密信息的时候,总是会有心怀鬼胎的人去捏造事实和进行造谣,变成三人成虎的一个尴尬的局面。 所以就需要一种技术去识别私密文本的发布者。从而找出真凶。
执行环境(execution context) 中的 context 有着上下文和环境两层含义。
其实React中组件化,是一个编程思路,我感觉,懒人才可以真正的领略到他的魅力,因为懒人才可以想出让自己书写代码,更快,更高,更强的方式。 这也是一种编程习惯和方式。用最短的时间,写最少的代码,干最漂亮的代码。 希望我啰嗦这么多,能对你有所帮助。如果大家看到有哪里不是很明白的,可以评论区,留言。如果感觉还不是很尽兴。没关系,这些东西,有很多。 其实每天都在吵吵组件化,组件化,组件化是在实际开发项目中,在解决实际业务中,才会有灵感。他主要的目的是解决实际问题,而不是闭门造车。
概念介绍 最少访问原则 JS中的作用域 全局作用域 局部作用域 块级声明 上下文(Context) 执行上下文(Execution Context) 词法作用域(Lexical Scope) 闭包 公共作用域和私有作用域 通过.call(), .apply() and .bind()修改上下文
简单介绍了useState/useEffect的使用方式,我相信大家在使用过程中,肯定遇到了比这还复杂的。但是,万变不离其宗。都是利用hook的一些API。为函数组件赋予状态。 还有一点,因为在使用useState或者useEffect的时候,我们可以将相关的代码进行统一处理,这样不管在业务开发还是代码维护上,变的很清楚。而不是像原来的开发一样,一个生命周期包含着无数的不相干的逻辑代码。 并且,hooks还支持自定义。本人认为,这才是hooks的真正强大之处。通过自定义一些业务代码,真正的实现逻辑复用。可以有效的减少wrapper hell。让代码实现切片化编程。
闭包对于前端开发者来说,既十分重要,又非常难理解。如果能很好的理解它,那你将能写出很多高逼格的代码,并且成为人生赢家,赢取白富美。 这篇文章,我们来一起简单的认识一下,你走向人生巅峰的敲门砖(闭包)。 Note: 闭包不是JS所特有的。它是一个计算机概念,应用的场景也很多。
greet获取了它应获取的参数,curry也停止了递归处理。并且,我们也获得了想要的结果Hello,范北宸。 其实利用curry对greet经过如上处理之后,现在处理之后的函数能够同时接收任意(n≥0)的参数。
不管是前端老司机还是刚接触前端的"菜鸟"。模块化想必在每天工作中,或多或少都会接触到。尤其针对一些针对React、Vue开发的同学来说,那就是每天都会脱口而出的一个必备术语。并且在很多技术文档中,都常常看到AMD、UMD、COMMONJS还有ES6中的module。 但是,模块化的本质是什么!前端是如何从"茹毛饮血"的<script>到现在es6的module的呢。 今天我们就来唠唠这段鲜为人知的故事。
大多数的高级模式都可以互相组合用于构建一个更加方便的模式。如果想要构建一个比较复杂的程序。可以尝试loose augmentation、private state、 和 sub-modules的组合。
但是有一点就是复杂类型数据和基本数据类型进行比较的时候,都是先调用valueOf(),如果返回的值为基本数据类型,进行比较,如果不是基本数据类型,继续调用该复杂类型的toString()。
我用我拙劣的代码来将这层糖的成分细细分析一下。 下面一些方法,都是基于class被脱糖之后的分析。关于class是如何被脱糖的过程===>请先查看ES6-Class如何优雅的进行Prototype“糖化” 内容很精彩,但是不要忘记回来看这个。这个剧情也挺赤鸡的。
这是一篇番外篇,其实他的主线是由一篇ES6-Class科普文章引发的“惨案”。虽然是番外篇,但是有些剧情还是不容错过的。 现在我们来进入番外篇的主线:ES6的Class是ES5构造函数的语法糖。
让我们就开始惨案的解密过程吧。 首先,我们不按常规去思考上面的疑惑,我们需要在破案之前,需要一些准备工具。 首先让人很刺眼的一个是:Object.defineProperty。既然遇到了,我们就来会会他。
全新对象;给对象赋值;Prototypes;设置属性;对象字面量
如果理解核心函数的调用机制,同时验证一些以核心函数为基础的其他实现方式的运行机制,关于上述所说的问题就会迎刃而解。
在实际项目开发中,不管是后端还是前端,最基本的操作就是数据的CRUD。换句话说,后端是根据某些条件组装数据,前端是拿着后端提供的数据,进行数据展示。但是不管在进行数据封装还是展示,其中在特定的场景下,需要根据某些条件,对数据进行排序。而在既定的现有框架下,都有现成的方法对数据进行排序处理。 但是,在开发中,有没有想过,这些排序底层是如何实现的,还有就是针对不同的数据,不同的排序是否在性能方面有不同的体现。
接下来的文档,将一起汇总一下我跟着极客时间的数据结构与算法之美的课程来一起回顾和总结一下(内容大部分是极客时间的,但是有一些也是我查询相关资料来进行比对和校验的)。
当今不管作为一个前端小白还是一个资深的前端攻城狮。如果不掌握几种前端框架(React,Vue,ng),都不好意思出去说自己是做前端。但是面对如此之多的前端框架,尤其是React、Vue这种纯负责UI展示的架子来说。有一件事是绕不开的就是前端的数据存储问题。 作为业界层出不穷的数据处理框架Redux(React的数据存储框架)又是不得不提起的。 Vue的数据处理一般用Vuex。但是他的设计思路都是基于Redux等。 所以,有必要看看Redux是如何实现数据存储,又如何使得存储的数据被组件获取,并且组件在触发CRUD的时候,能够及时更新数据呢。 我们就按照Redux的实现原理来剖析一下这些数据存储
使用Webpack4并启用production模式;处理lodash.js;处理moment.js;作用域提升(Scope hoisting)
最近在公司接了一个老项目迁移React。在组件开发过程中,发现有一些组件的处理逻辑很类似。想在某一个地方来统一处理。进过思考和分析,发现HOC(higher-order component)很适合完成此类工作。 再次来总结HOC的概念和基本用法。
React-Router基本了解 对于React-Router是针对React定义的路由库,用于将URL和component进行匹配。 React Router的简单使用教程
组件隔离适用范围 同一个页面引用多个相同的自定义公共组件(该类组件拥有自己的Redux)并且这些组件之间有交互。 案例背景 在一个页面中存在两个相同的公共组件(A),在页面处理中,对A组件进行操作,有一些重要的数据被存入到A组件的对应的Redux中。 如果该页面只存在一个A组件,不管进行如何的操作,数据都是一份。但是如果该页面中存在多个A组件,在对第一个A组件进行数据处理之后,数据存入到Rudex中。此时在对另一个A组件进行相同的操作步骤,但是存入的数据和第一个A组件的存储在Redux中的数据有差别,此时在第二个A组件的操作就会影响第一个A组件的数据。
Parsing 我们来构建一个tokenizer用于进行lexical analysis(词法分析)
在现今前端项目中,模块化是一个避不开的话题。所以就会出现AMD,CMD等模块加载方式。同时由于JS不停的在更新迭代。出现很多实用的新语法。但是由于有些语法有些超前,JS的宿主环境(浏览器/Node没有跟上JS更新步骤),但是为了在项目中使用这些好用到令人发指的新特性,来提高开发效率等。就出现了各种前端编译插件(Babel)。
Babel is a JavaScript compiler babel主要的职责就是将一些前沿时髦的JS特性通过"翻译"用到老旧的‘宿主’环境里。(浏览器,Node等)