当前位置: 首页 > news >正文

什么查网站是否降权/种子在线资源搜索神器

什么查网站是否降权,种子在线资源搜索神器,帮做ppt的网站,如何站自己做网站本次分析的源码采用的是16.4.1的版本 核心接口 React.Children提供了处理 this.props.children 的工具集: mapforEachcounttoArrayonly我们先来看看mapChildren做了什么事情 map: mapChildren即当children为空时,返回null;不为null时调用mapI…

本次分析的源码采用的是16.4.1的版本

核心接口

图片描述


React.Children

提供了处理 this.props.children 的工具集:

  • map
  • forEach
  • count
  • toArray
  • only

我们先来看看mapChildren做了什么事情


map: mapChildren

图片描述

即当children为空时,返回null;
不为null时调用mapIntoWithKeyPrefixInternal,最终返回一个result数组.
这里说一下,可以通过传入的func对所有子组件进行操作,具体使用方法看下图参数
图片描述

通过配合cloneElement的例子:

class RadioGroup extends Component {constructor(props){super(props);}renderChildren(props) {return React.Children.map(props.children, (child, index) => {if (child.type === RadioOption)return React.cloneElement(child, {// 把父组件的props.name赋值给每个子组件name: props.name})return child})}render() {return (<div>{this.renderChildren(this.props)}</div>)}
}

forEach、count、toArray我们先不看,先看下only


only: onlyChild

图片描述

看注释就能明白了
这个函数会返回第一个children,同时通过isValidElement判断是不是唯一的一个,若不是会报错

因为若只有一个那一定是一个Object对象,否则为一个数组
所以可以通过判断是否为children是不是一个Object对象
我们来看下函数验证一下
图片描述

果然有个一判断是否为Object的条件,剩下两个是判断是否为null和$$typeof是否为element


React.createRef

照旧看下源码
图片描述

这里发现用了Object.seal方法来封闭了refObject,即阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要可写就可以改变,这里说下不可变(immutable)对象的几个好处:

  • 线程安全
  • 易于理解
  • 比可变对象有更高的安全性

createRef是React 16.3 发布的方法
同时还有一个用于高阶组件的forwardRef
基本原理是通过劫持ref并且将之转换成prop实现的
具体使用如下

function HOC(WrappedComponent) {class HOC extends React.Component {constructor(props){super(props);}render() {const {forwardedRef, ...rest} = this.props;return <WrappedComponent ref = {forwardedRef} {...rest} />;}}return React.forwardRef((props, ref) => {return <HOC {...props} forwardedRef = {ref} />;});;
}
class Child extends React.Component{constructor(props){super(props);}render(){return <input />}
}
const LogProps = HOC(Child);class Father extends React.Component{constructor(props){super(props);this.myRef = React.createRef();}componentDidMount(){console.log(this.myRef.current);}render(){return <LogProps ref = {this.myRef}/>}
}

React.Component 和 React.PureComponent

这里是Component
图片描述

这里是PureComponent
图片描述

这里是ComponentDummy
图片描述

这里发现setStateforceUpdate方法挂在Component下,通过一个ComponentDummy的“伪组件”来当作中介,使PureComponent也能访问到setState 和 forceUpdate方法。
细心的可能发现这里有个objectAssign方法,这个方法把Component的原型跟PureComponent的原型合并了,也就是说PureComponent和Component共用了一个原型
图片描述

这里的shouldUseNative()是对原生的assgin方法进行兼容性判断,我把源码贴出来,有兴趣的可以看看
图片描述


createFactory: createFactoryWithValidation

图片描述

createElement: createElementWithValidation

图片描述

在最后我们可以看到有一个判断type === REACT_FRAGMENT_TYPE,这个REACT_FRAGMENT_TYPE是一个可以包裹碎片化元素的组件
React.Fragment包裹碎片化的组件,可以写作

  <>...</>但可能有的编译器不支持,最好写作<React.Fragment>...</React.Fragment>

看到现在都没发现render方法的踪影,源码还没读完......

http://www.jmfq.cn/news/5137813.html

相关文章:

  • 网站开发工具可视化/晋城网站seo
  • 濮阳网站推广/讯展网站优化推广
  • 郑州网站建设 天强科技/如何搭建一个网站平台
  • 摄影网站免费/网站软文是什么
  • 成都私人做公司网站的/seo搜索引擎优化推荐
  • 广州 网站建设/专业网站建设
  • 家做网站/故事式软文广告300字
  • 网站备案号查询网址/广东疫情最新资讯
  • 宁波网站建设营销推广/东莞百度seo推广公司
  • 北京招聘网站排行/百度收录的网页数量
  • 微网站价格/优化外包哪里好
  • 网站开发的工作职责/新闻稿件
  • 营业执照注册网站/职业培训学校
  • 做动态网站需要学什么/百度sem竞价托管
  • 微信登录界面/重庆seo
  • 深圳专业软件网站建设/网络营销策划案例
  • 未备案网站通知/域名停靠
  • 什么星网站做调查问卷的/无安全警告的浏览器
  • 佛山龙江做网站的/互联网营销是什么意思
  • 网站搭建/windows优化大师如何卸载
  • 邢台做网站的那好/营销策略有哪些内容
  • 做教育网站多少钱/百度竞价是什么意思?
  • 局网站信息内容建设 自查报告/最新域名查询ip
  • 营销型网站维护费用/注册自己的网站
  • 学校网站建设/免费查权重工具
  • 西宁服务/免费seo网站
  • 网站制作五个界面/常用的seo查询工具有哪些
  • 学校网站建设电话/ 今日头条
  • 入群修改网站后台/百度关键词优化曝光行者seo
  • 网站宣传海报/性价比高seo排名