[英]Simple “Hello World” in ReactJS not working
我不是把你的世界作為輸出。 任何人都可以告訴我我缺少什么,它是一個基本代碼,使用createElement函數以不同的方式獲得輸出。 我是新來的反應。
碼:
<!DOCTYPE html>
<html>
<head>
<title>My First App</title>
</head>
<body>
<div id="react-app"></div>
<script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react.js"></script>
<script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react-dom.js"></script>
<script type="text/jsx">
class StoryBox extends React.Component{
render(){
return(<div> Hello World </div> );
}
}
var target= document.getElementById('react-app')
ReactDOM.render(<StoryBox>,target);
</script>
</body>
</html>
做這些改變:
1.包括babel獨立腳本來轉換你的jsx,把cdn鏈接放在head部分,腳本:
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script>
2.而不是storyBox
使用StoryBox
(大寫S),檢查這個答案是有原因的。
3.你忘了關閉,這里: <storyBox>
,使用這個: <StoryBox />
。
4,而不是Div
使用div
。
檢查工作代碼段:
<!DOCTYPE html> <html> <head> <title>My First App</title> <script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react.js"></script> <script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react-dom.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.24.0/babel.js"></script> </head> <body> <div id="react-app"></div> <script type="text/jsx"> class StoryBox extends React.Component{ render(){ return(<div> Hello World </div> ); } } var target= document.getElementById('react-app') ReactDOM.render(<StoryBox/>,target) </script> </body> </html>
您還需要添加babel,將jsx轉換為es5。 這是示例代碼。 注意:您的cdn for react拋出錯誤,所以我使用了其他cdn。
<html>
<head>
<meta charset="UTF-8" />
<title>Hello World</title>
<script src="https://unpkg.com/react@latest/dist/react.js"></script>
<script src="https://unpkg.com/react-dom@latest/dist/react-dom.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('root')
);
</script>
</body>
</html>
PS如果你想嘗試使用npm包進行反應, 這里是一個簡單的github存儲庫。
您需要包含一個JSXTransformer
才能執行原始JSX。 嘗試運行以下代碼:
<div id="react-app">
</div>
<script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react.js"></script>
<script src="https://cdn.jsdelivr.net/react/0.14.0-rc1/react-dom.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.13.3/JSXTransformer.js"></script>
<script type="text/jsx">
class StoryBox extends React.Component{
render(){
return(<div> Hello World </div> );
}
}
ReactDOM.render(<StoryBox />, document.getElementById('react-app'))
</script>
你需要添加JSX自動關閉標簽/>
- 當沒有孩子時。
替換這一行:
ReactDOM.render(<StoryBox>,target)
至
ReactDOM.render(<StoryBox />,target)
查看工作代碼:
class StoryBox extends React.Component{ render(){ return(<div> Hello World </div>); } } var target= document.getElementById('react-app') ReactDOM.render(<StoryBox />,target)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script> <div id="react-app"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.