为什么import React from 'react',React首字母必须大写?

 

很奇怪的是,明明没有用到 React,但是我不得不 import React。这是为什么?

import React from 'react';
 export default function (props) {      
return (
     <form className="signIn" onSubmit={props.onSubmit}> {/* 登录*/}           
<form className="signIn" onSubmit={props.onSubmit}> {/* 登录*/}
...

 

答:把jsx编译到js需要调用一个函数, 这个函数在React叫React.createElement.

import React from 'react';
const comp = () => (
    <div>something...</div>
);
//...

// 编译 JSX 后:

import React from 'react';
const comp = () => (
    React. createElement('div', null, 'something...' )
);
//这是个约定熟成,不大写,babel编译会出错

 

 


 

"extends React.Component" 删掉行不行?

答:不行,删掉的话页面就是空白的了。说明自定义标签必须继承 React.Component。试试把 render 函数变成其他名字,也不行。且Welcome首字母要大写!

//import 略

class Welcome extends React.Component { 
  render() {
    return <h1>Hello, Component</h1>;
  }
}

ReactDOM.render(
  <Welcome/>,
  document.getElementById('root')
)

 

 

posted @ 2018-09-27 20:54  Leoz/  阅读(1531)  评论(0编辑  收藏  举报