javascript – JSX与组件类实例化

前端之家收集整理的这篇文章主要介绍了javascript – JSX与组件类实例化前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释以下两个陈述之间的区别吗?
let test1 = new CustomComponent();

let test2 = <CustomComponent />

调试器是Chrome给我的:

for test1
CustomComponent {props: undefined,context: undefined,refs: Object,updater: Object,state: Object…}

for test2
Object {$$typeof: Symbol(react.element),key: null,ref: null,props: Object,type: function…}

如何从test1类型的变量中获取test2类型的变量?

解决方法

所以.

让test1 = new CustomComponent();只是一个常规的javascript事情,同样的事情发生在任何其他时间调用new thing().没什么特别的.

let test2 =< CustomComponent />这是一个JSX声明,而babel做了一些魔术.它编译< CustomComponent />到React.createElement(CustomComponent,null).所以,你可以看到它与调用new完全不同,它调用一个React函数来创建一个元素,反应知道如何处理.

Babel有一个REPL工具,如果您想快速查看引擎盖下的内容,可以使用它查看它对源代码所做的工作.

猜你在找的JavaScript相关文章