〇.看前准备 1.自行clone react最新代码 2.自行搭建一个能跑react的test项目 一.看表面:那些插件 如何解析JSX 有如下一段代码: // ---- hearder.jsx 组件 import React,{Component} from 'react'; export default (props)=>( <h1 ref="h1">我是header.{props.kk}</h1> ); // ---- Home.jsx 页面级组件…
一.一个真正的react组件编译后长啥样? 我们瞎几把解读了react 虚拟dom对象是怎么生成的,生成了一个什么样的解构.一个react组件不光由若干个这些嵌套的虚拟dom对象组成,还包括各种生命周期钩子.自定义方法.事件等组成 下面让我们继续探索 react组件写法: // 一个再普通不过的react组件写法 mport React,{Component} from 'react'; import Header from '../components/header'; class Home…
一.ReactDOM.render 都干啥了 我们在写react的时候,最后一步肯定是 ReactDOM.render( <div> <Home name="home"/> </div> , document.getElementById('app') ); 我们上面得知jsx被解析成了虚拟dom对象,我们把一个对象和一个dom传入render方法就得到了我们的页面,好神奇呀,我们开始撸到render方法: const ReactDOM: Objec…
一.jsx变createElement 每一个用jsx语法书写的react组件最后都会变成 react.createElement(...)这一坨东西, // 转变前 export default (props)=>( <h1 ref="h1" key="header1" name="我"><span>哈哈!</span>我是header.{props.kk}</h1> ); // 转变后 v…
〇.先来看看常用的常量 NoWork = 0 noTimeout = undefined HostRoot = 3 NoContext = 0b000; AsyncMode = 0b001; StrictMode = 0b010; ProfileMode = 0b100; NoEffect = /*              */ 0b00000000000 enableProfilerTimer = __PROFILE__ __PROFILE__: true isDevToolsPresent…
写了分析源码的文章后, 总觉得缺少了什么, 在这里补一个整体的总结,输出个人的理解~ 文章的系列标题为Fiber源码分析, 那么什么是Fiber,官方给出的解释是: React Fiber是对核心算法的一次重新实现. ummm, 这样说实在是有点泛,详细分析一下 先从开发者角度来看  实际上这次更新对于我们来说影响并不大,只是几个生命周期改变了,新引入的两个生命周期函数 getDerivedStateFromProps,getSnapshotBeforeUpdate 以及在未来 v17.0 版本…
此系列文章将整合我的 React 视频教程与 React Native 书籍中的精华部分,给大家介绍 React Native 源码学习方法及其他资源. 最后的章节给大家介绍 React Native 源码的查阅方法,以便你进行更加高阶的开发与研究时参阅,并分享了开发过程中可能遇到的众多问题的解决方案,以及与 React Native 开发相关.本书相关的一些线上资源. 15.6 React Native 源码剖析 我们在学习了 React Native 开发的方方面面之后,我们再次回到 Rea…
一.产生context原因 从父组件直接传值到孙子组件,而不必一层一层的通过props进行传值,相比较以前的那种传值更加的方便.简介. 二.context的两种实现方式 1.老版本(React16.x前) //根组件 class MessageList extends React.Component { //getChildContext函数,返回一个context对象 getChildContext() { return { color: 'purple', text: 'item text'…
一.什么是jsx  jsx是语法糖  它是js和html的组合使用  二.为什么用jsx语法 高效定义模版,编译后使用 不会带来性能问题 三.jsx语法转化为js语法  jsx语法通过babel转化为js语法 内部调用了createElement()方法 html标签 自定义组件 React.Fragment组件 React.createElement(标签名type,属性对象config,子节点1,子节点2.....) 1.参数:标签名,属性对象,子节点   返回值:虚拟dom对象 2.标签名…
vue 源码详解(二): 组件生命周期初始化.事件系统初始化 上一篇文章 生成 Vue 实例前的准备工作 讲解了实例化前的准备工作, 接下来我们继续看, 我们调用 new Vue() 的时候, 其内部做了哪些工作. 1. 从 Vue 构造函数开始 new Vue(options) 时, Vue 构造函数中只有一句代码 this._init(options) . 通过执行这个函数顺次调用了下边代码中注释处 1 ~ 10 的代码, 下面就按照代码的执行顺序,依次解释下每个函数的作用. let uid…