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

营销网站的搭建最近一周的新闻大事10条

营销网站的搭建,最近一周的新闻大事10条,长春搜索引擎网站推广,枣庄做网站优化1.React.createElement 我们知道在React17版本之前,我们在项目中是一定需要引入react的。 import React from “react” 即便我们有时候没有使用到React,也需要引入。原因是什么呢? 在React项目中,如果我们使用了模板语法JSX&am…

1.React.createElement

我们知道在React17版本之前,我们在项目中是一定需要引入react的。

import React from “react”

即便我们有时候没有使用到React,也需要引入。原因是什么呢?

在React项目中,如果我们使用了模板语法JSX,我们知道它要先经过babel的转译。那babel会将JSX转换成什么样子的格式呢?

在这里插入图片描述
可以看到,现在的babel会将JSX模板转换成带有jsx方法的内容。但是在17之前,babel是将JSX转换为带有React.createElement方法的内容。

而这也是为什么在17之前我们要引入React才能让项目正常使用。

2.ReactElement元素

如果我们在项目代码中,打印一个react元素:

const jsx = <div><span>123</span></div>
console.log(jsx)

可以在控制台看到:
在这里插入图片描述
所以我们通过babel转译后的内容,执行完应该生成这样的一个ReactElement对象。
所以在实现jsx方法前,我们可以定义一个ReactElement类(实际的React源码中是一个方法,但是这里为了好看一些,使用类的结构)。

class ReactElement {constructor(key, props, ref, type) {this.$$typeof = Symbol.for('react.element')this.key = key;this.props = props;this.ref = ref;this.type = type;}
}

3.实现JSX方法

在上面的转译内容我们可以看到,jsx方法接受两个参数,第一个参数是类型:例如div,span或者自定一类型。
第二个参数是配置参数:例如class,ref等参数。

我们只需要将ref,type,key这三个属性,直接赋值给ReactElement元素。而其他的属性全部放在props里面就可以了:

function jsx(type, config) {let key, props = {}, ref;for(let propName in config){if(propName === 'key'){key = config[propName];}else if(propName === 'ref'){ref = config[propName];}else {props[propName] = config[propName]}}return new ReactElement(key,props,ref,type)
}

由于递归的过程已经被babel处理了,所以其实在jsx方法中只需要遍历即可,并不需要太过复杂的处理。

4.测试

现在我们使用babel转译过的内容,对jsx方法进行测试:

const reactElement = jsx("div", {ref: "123",style: {color: 'red'},children: ["123", jsx("span", {children: "456"})]
});console.log(reactElement)

可以在控制台看到jsx方法执行的结果:
在这里插入图片描述

以上就是通过babel处理后,react对处理的内容做的初步处理。

http://www.khdw.cn/news/10812.html

相关文章:

  • 公众号文章导入wordpressseo赚钱培训课程
  • 做企业网站需要多久惠州seo网站推广
  • bs网站做映射seo排名规则
  • 3d网站怎么做关键词在线采集
  • 如何做聚合类网站苏州关键词优化seo
  • 四平网站建设哪家效果好六年级下册数学优化设计答案
  • 建设网站教学网站建设费用
  • 网站模板 源码济宁seo优化公司
  • 屯济宁做网站公司湖南seo优化价格
  • 手机网站模板下载免费辅导班
  • 江苏建设科技网站网红推广一般怎么收费
  • 高密做网站哪家好价位推广app的软文案例
  • 个人网站要备案吗seo优化自动点击软件
  • 黄冈市住房和城乡建设委员会网站百度关键词排名推广话术
  • 简单库存管理免费软件免费seo刷排名
  • 应用开发神马移动排名优化
  • delphi 可做网站吗成都专门做网络推广的公司
  • wifiu盘做网站优秀软文范例200字
  • 建设网站用的软件5g站长工具查询
  • 匠王红木在那个网站做众筹淘宝引流推广怎么做
  • 无锡专业做网站的公司seo关键词排名软件
  • 镇江个人网站建设怎么找关键词
  • wordpress手机域名网站seo分析常用的工具是
  • 怎样把网站做的高大上软件推广赚钱一个10元
  • 程序员做音乐网站竞价托管怎么做
  • 湖北商城网站建设网页制作步骤
  • 张家港市住房和城乡建设局网站代刷网站推广快速
  • 如何提高网站用户体验网上广告宣传怎么做
  • 包头哪有做网站的最近最火的关键词
  • 深圳网站开发的公司电话近期新闻事件