关于是否有必要导入React无状态组件并且找不到任何关于它的文档,有一些关于工作的辩论.所以:
//OPTION 1
import React, { PropTypes } from 'react';
//OPTION 2
import { PropTypes } from 'react';
export const Button = ({ action }) => {
return (
<button onClick={action}>Submit</button>
);
}
Button.propTypes = {
action: PropTypes.func.isRequired,
};
Run Code Online (Sandbox Code Playgroud)
有人说使用JSX时,选项1是最佳实践; 其他一些思考组件将失败,而选项2.
我已经尝试了两种,我看不出任何差异,该组件仍然适用于这两种情况.
选项1或选项2:哪一个是正确的?
运行一个脚本,未使用的检查后imports,如import XYZ from 'dir/XYZ.jsx'在那里XYZ从未使用过,我遇到约300具有这类问题的文件。这些文件大多数都缺少类似的内容,例如ProptypesReact(import PropTypes from 'prop-types')。
我听说导入了webpack / babel缓存文件。如果这是真的,那么删除多次出现的这些未使用的进口是否值得,还是我应该让他们独自一人?
请注意,我出于性能原因和代码清洁度而进行此项目。
我有一个React应用程序,以下是JavaScript代码
import React from 'react';
import ReactDOM from 'react-dom';
const App = function(){
return <div>Hi</div>
}
ReactDOM.render(<App />, document.querySelector('.container'));
Run Code Online (Sandbox Code Playgroud)
HTML文件如下.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/style/style.css">
<link rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstrap/48938155eb24b4ccdde09426066869504c6dab3c/dist/css/bootstrap.min.css">
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAq06l5RUVfib62IYRQacLc-KAy0XIWAVs"></script>
</head>
<body>
<div class="container"></div>
</body>
<script src="/bundle.js"></script>
</html>
Run Code Online (Sandbox Code Playgroud)
我不明白的问题是,如果我删除import React from 'react',它将显示如下的错误消息.
未捕获的ReferenceError:未定义React
但我没有在任何地方明确地在我的代码中使用React,为什么它会显示这样的消息.谁能告诉我引擎盖下发生了什么?
更新: 与这个问题不完全相同的问题,因为我在我的代码中只有一个单独的组件,不涉及任何父组件.