前端路由的设计思想与实现 && React-Router v4

前端路由的实现前端路由分为两种实现方式: HashHistory,通过修改location.hash,然后监听hashchange事件来进行对应操作。 BroswerHistory,通过HTML5提供的History对象的pushState、replaceStateAPI,然后监听popstate事件来进行对应操作。 二者的优劣: 第一种方法兼容性更好,但是实现比较复杂,并且url比较丑陋(例如:http://www.test.com/#/xxx)。 第二种方法是浏览器提供的能力,所以实现比较简单,url与正常相同(例如:http://www.test.com/xxx),但是可能存在兼容性问题。 其实还有第三种,MemoryHistory,用于non-DOM环境下,例如React Native。     阅读全文
GeniusFunny's avatar
GeniusFunny 2月 25, 2019

从0到1打造一款没人用的前端框架

如果可以,为什么我们不自己打造一款没人用的前端框架呢? 首先介绍如何创建虚拟DOM节点以及将虚拟DOM节点转化为真实DOM节点,参照React/Preact     阅读全文
GeniusFunny's avatar
GeniusFunny 12月 07, 2018

React Diff

计算一棵树形结构转换成另一棵树形结构,传统的diff算法算法复杂度达到O(n^3)。React通过制定策略,将O(n^3)复杂度的问题转换成O(n)复杂度。     阅读全文
GeniusFunny's avatar
GeniusFunny 9月 23, 2018

“工作室招新页面项目”实践中遇到的问题(一)———— React组件通信

最近学了React基础知识,所以有打算做一个项目来踩坑,恰好适逢大二寒假并且工作室恰好需要在开学后招新,所以天时地利人和,我就用React作为这个项目的技术栈。于是项目开发中的第一个问题就诞生了————React组件通信     阅读全文
GeniusFunny's avatar
GeniusFunny 2月 13, 2018