ReactJs + Babel - 使用单独的文件定义组件
ReactJs + Babel - Defining components using separate files
正在尝试使用单独的文件创建组件class
Index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../assets/libs/react-0.13.3/build/react.js"></script>
<script src="../../assets/libs/babel.min.js"></script>
</head>
<body>
<section class="reactive"></section>
<script type="text/babel" src="../../components/AppBar/NavBar.js"></script>
<script type="text/babel">
var
reactiveNode = document.querySelector('.reactive');
React.render( <NavBar value='hello world'/>, reactiveNode );
</script>
</body>
</html>
Navbar.js
var NavBar = React.createClass({
render: function ()
{
return ( <h1>{this.props.value}</h1> );
}
});
在 运行 之后,我有日志:
XHR finished loading: GET
"http://localhost:3000/app/components/AppBar/NavBar.js"
Uncaught ReferenceError: NavBar is not defined
只有在 index.html
文件中创建 class 才有效
问题出在变量的范围上。
使用解决
window.NavBar = React.createClass({
// ...
});
如果你用的是OOP react,应该是这样的
class NavBar extends React.Component{
// ...
});
window.NavBar = NavBar;
正在尝试使用单独的文件创建组件class
Index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="../../assets/libs/react-0.13.3/build/react.js"></script>
<script src="../../assets/libs/babel.min.js"></script>
</head>
<body>
<section class="reactive"></section>
<script type="text/babel" src="../../components/AppBar/NavBar.js"></script>
<script type="text/babel">
var
reactiveNode = document.querySelector('.reactive');
React.render( <NavBar value='hello world'/>, reactiveNode );
</script>
</body>
</html>
Navbar.js
var NavBar = React.createClass({
render: function ()
{
return ( <h1>{this.props.value}</h1> );
}
});
在 运行 之后,我有日志:
XHR finished loading: GET "http://localhost:3000/app/components/AppBar/NavBar.js"
Uncaught ReferenceError: NavBar is not defined
只有在 index.html
文件中创建 class 才有效
问题出在变量的范围上。
使用解决
window.NavBar = React.createClass({
// ...
});
如果你用的是OOP react,应该是这样的
class NavBar extends React.Component{
// ...
});
window.NavBar = NavBar;