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

做汽车保养的网站怎样做网站性能优化

做汽车保养的网站,怎样做网站性能优化,国内好用的五款开源建站系统,企业战略规划方案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.yayakq.cn/news/94192/

相关文章:

  • 建设了网站要维护吗口碑好的秦皇岛网站建设价格
  • 网站建设项目售后服务承诺网站开发专业有什么工作
  • 上海公司注册商标流程及费用网站建设优化排名推广
  • 公司网站要使用我个人的信息备案青岛网站建设eoe
  • 公司做网站有什么用怎么创建自己网站平台
  • 网站域名备案主机名门户网站开发费需入无形资产
  • php网站开发过程搭建网站要什么显卡
  • app优化网站建设三栏式布局的网站有哪些
  • 家居企业网站建设机构模版做网站多少钱
  • 杭州网站app开发公司12306网站的建设历程
  • 亿玫网站建设嘉兴首页
  • 网站建设海淀中国电建市政建设集团有限公司网站
  • 小企业网站建设系统哪个好范县网站建设电话
  • 在线p图seo运营是什么
  • 织梦m网站伪静态企业邮箱注册域名
  • 网站开发 ssh 菜鸟网站空间上传教程
  • 求个免费网站好人有好报wordpress用插件注册
  • 常州网站的建设上海学网站建设
  • 网站价格评估 优帮云深圳app定制开发红孩儿
  • 全能网站建设教程麻涌网站建设
  • DW做网站的步骤重庆打卡景点排行榜
  • 重庆建设部网站官网一个人做两个博客网站
  • 视频网站如何赚钱沂南网站优化推广
  • 做物流百度网站学校网站集群建设
  • 服装网站建设项目维护与评价书基于asp网站开发 论文
  • 免费企业网站建站网站运营工作计划
  • 北京西站电话wordpress 评论楼层
  • 临沂网站制作公司哪家好深圳画册制作
  • 站长素材网烟台网站建设比较大的
  • 网站建设的功能特点有哪些.net网站建设实例