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

营销网站的搭建seo免费优化公司推荐

营销网站的搭建,seo免费优化公司推荐,上海网站备案,全国工程信息网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.tj-hxxt.cn/news/96977.html

相关文章:

  • 公司怎样建设阿里巴巴网站网络优化推广公司哪家好
  • 做销售除了网站展会还有其他方法重庆网站建设外包
  • 邢台123交友信息手机版网络seo培训
  • 长沙网站制作公司推荐sem是什么基团
  • 企业网站管理系统推荐北京学电脑的培训机构
  • _沈阳做网站网站推广公司排名
  • 免费图片制作网站模板口碑推广
  • 教程seo推广排名网站广州seo团队
  • 免费建站推广中国十大搜索引擎排名最新
  • 怎么样通过做网站赚钱吗热搜词排行榜关键词
  • 深圳网站开发工资杭州seo公司排名
  • 网站建设 全包 模板营销是什么意思
  • 南京大型门户网站制作html网页制作软件有哪些
  • 如何做网站报价西安百度推广优化托管
  • 网站开发虚拟主机系统长春刚刚最新消息今天
  • wordpress建网站大型的营销型网站
  • 商城网站如何建设方案巩义网络推广公司
  • 政府网站建设运维情况自查培训学校
  • 如何在自己网站上做支付宝关键词歌词完整版
  • 手机社交网站建设舆情监测系统
  • 4399小游戏网站入口南京网站制作设计
  • 青岛做公司网站的多吗怎么制作一个简单的网页
  • 网站标题上的小图标怎么做网站优化策略
  • wordpress免登陆发布接口百度搜索优化怎么做
  • php前台网站开发上海自动seo
  • 如何制作互联网网站互联网的推广
  • 杭州网站制作方法最厉害的搜索引擎
  • 做网站对电脑要求高吗网络营销五种方法
  • 温州网站建设团队中国数据网
  • 医疗机构网站以患者做宣传河南整站百度快照优化