[英]What is wrong with my basic ReactJS app?
我正在嘗試使用本教程構建一個基本的ReactJS應用程序 。
當前,我有一個空白頁,當我鍵入MessageBox
,我的組件的名稱,我收到以下錯誤。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="Playing with ReactJS">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Playing with ReactJS</title>
</head>
<body>
<!-- container node -->
<div id="app"></div>
<script src="bower_components/react/react.js"></script>
<script src="bower_components/react/react-dom.js"></script>
<script type="text/jsx">
/** @jsx React.DOM */
var MessageBox = React.createClass({
render: function() {
return (
<h1>Hello, World</h1>
);
}
});
React.renderComponent(
<MessageBox/>,
document.getElementById('app'),
function () {
console.log('after render');
}
)
</script>
</body>
</html>
/**
* React v0.14.7
*/
瀏覽器不了解JSX。 您需要以某種方式將其轉換為JavaScript才能開始工作。 您可以通過將代碼移動到單獨的.jsx
文件並設置諸如Babel的工具進行編譯來實現,也可以使用JSXTransformer在瀏覽器中運行轉換(JSX-> JS)。 但是, 不推薦使用JSXTransformer ,它可能不支持JSX語法的最新添加(例如,無值屬性 )。
renderComponent
函數已被棄用。
您可以使用ReactDOM.render()
代替React.renderComponent()
。
您的新文件應如下所示:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="description" content="Playing with ReactJS">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Playing with ReactJS</title>
</head>
<body>
<!-- container node -->
<div id="app"></div>
<script src="bower_components/react/react.js"></script>
<script src="bower_components/react/react-dom.js"></script>
<script type="text/jsx">
/** @jsx React.DOM */
var MessageBox = React.createClass({
render: function() {
return (
<h1>Hello, World</h1>
);
}
});
ReactDOM.render(
<MessageBox/>,
document.getElementById('app'),
function () {
console.log('after render');
}
);
</script>
</body>
</html>
另外-將函數提取到單獨的js文件中。
這是一個很好的(最新的)教程 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.