Javascript ReactJS';世界你好';使用JSX和类不会向浏览器打印任何内容
我正在尝试获取一些基本的jsx,以便在常规web浏览器中显示一些文本。通过双击主html文件并在chrome中打开代码,firefox 我一直在关注这些链接和一些书籍 是唯一一个似乎在实际的网络浏览器中打开程序时触碰的。问题是它没有包括一些额外的东西,比如创建类和其他类所做的事情 我似乎找不到我的代码没有打印任何内容的原因Javascript ReactJS';世界你好';使用JSX和类不会向浏览器打印任何内容,javascript,html,reactjs,web,jsx,Javascript,Html,Reactjs,Web,Jsx,我正在尝试获取一些基本的jsx,以便在常规web浏览器中显示一些文本。通过双击主html文件并在chrome中打开代码,firefox 我一直在关注这些链接和一些书籍 是唯一一个似乎在实际的网络浏览器中打开程序时触碰的。问题是它没有包括一些额外的东西,比如创建类和其他类所做的事情 我似乎找不到我的代码没有打印任何内容的原因 所需输出 你好,世界 在我使用的网络浏览器(Firefox)中打印 jsx/index.js import React from 'react'; import { re
所需输出 你好,世界 在我使用的网络浏览器(Firefox)中打印
jsx/index.js
import React from 'react';
import { render } from 'react-dom';
class navBar extends React.Component {
render() {
return <div>Hello world</div>;
}
}
render(<navBar />, document.body)
从“React”导入React;
从'react dom'导入{render};
类navBar扩展了React.Component{
render(){
返回你好世界;
}
}
render(,document.body)
index.html
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<script src="https://unpkg.com/react@16.8.4/index.js"></script>
<script src="https://unpkg.com/react-dom@16.8.4/index.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.2/browser.min.js"></script>
<meta charset="utf-8" name="viewport" content="user-scalable=no, width=device-width" />
</head>
<body>
<script type='text/babel' src='jsx/index.js'></script>
</body>
</html>
你好,世界
根据react文档,您不应该使用以小写字母开头的类/组件
名称
将navBar
更改为navBar
,您就可以出发了
此外,您不应该将组件装载到body标记,因为某些第三方库可能会操纵页面的主体
另外,请阅读开发人员工具中的控制台警告和错误,您将从中得到基本答案。您需要index.html中ID为“root”的容器,并且需要从“react dom”导入ReactDOM。您还应该使用大写字母(Navbar而不是Navbar)命名组件,这是惯例。您的代码应该如下所示:
从“React”导入React;
从“react dom”导入react dom;
类Navbar扩展了React.Component{
render(){
返回你好世界;
}
}
jsx中的ReactDOM.render(,document.querySelector('#root'))
删除导入语句
另外,在return语句中的div周围添加括号
用大写字母命名组件(NavBar而不是NavBar)
使用ReactDOM.render
以及为了安全
在html主体内创建一个Div,以便将组件装载到其中。这将防止第三方库操纵页面主体
class NavBar extends React.Component {
render() {
return (
<div>
Hello world
</div>
);
}
}
ReactDOM.render(<NavBar />, document.querySelector('#root'))
类导航栏扩展了React.Component{
render(){
返回(
你好,世界
);
}
}
ReactDOM.render(,document.querySelector('#root'))
在html中
使用和作为源脚本
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.26.0/babel.js"></script>
<meta charset="utf-8" name="viewport" content="user-scalable=no, width=device-width" />
</head>
<body>
<div id="root"></div>
<script type='text/babel' src='jsx/index.js'></script>
</body>
</html>
你好,世界
通常需要创建一个div,并将其交给render函数。您的React版本非常旧,请尝试更新到16。8@felixmosh我还没反应过来。我是否正确更改了版本?否,unpkg.com/react@16.8.0/umd/react.production.min.js unpkg.com/react-dom@16.8.0/umd/react-dom.production.min。js@Jacob你能检查一下这个吗?这也和你从'react dom'导入{render}一样;所以ReactDom.render,这里是ReactDom而不是ReactDom,这里不需要ReactDom,只需要render(,document.querySelector('#root'))fine@Jayavel抱歉,我正在导入reactdom,就像你提到的那样,我只是没有更新我的问题来显示它。您发布的github示例没有使用类,在这个示例中,这对我来说似乎是一个大问题。我已经能够在不使用类的情况下创建hello world。第二个例子看起来有点复杂。我会仔细阅读,但更难理解。我发布了一个更新,但似乎没有帮助。你也可以发布你的html吗?另外,在我使用document.body之前。这还不够好吗?你需要在你的身体里有html格式的反应渲染器,在那里反应渲染器似乎仍然没有帮助。您是否有正在使用的html?此外,我还发布了一些更新的控制台错误。