我刚开始学习React Router。
我有两个问题。使用<Link to="/page">
和<a href="page">
有什么区别?两者都会向/page
发出相同的请求,但当我嵌套路由时,使用<a href="page">
会导致错误,而使用<Link to="/page">
则可以正常工作。我不明白,既然它们渲染成完全相同的URL,为什么会有任何差异?
第二个问题是React Router v4文档中的奇怪箭头函数。
const About = () => (
<div>
<h2>About</h2>
</div>
)
我知道() => {}
是ES6中的新内容,但我找不到有关括号而非圆括号的任何信息。它们是什么?
编辑
我的index.js类(我已经导入了所有内容)
render((
<Router>
<div>
<Route component={App}/>
</div>
</Router>
), document.getElementById('root')
);
我的App.js类
class App extends Component {
render() {
return (
<div className="container">
<header>
<span className="icn-logo"><i className="material-icons">code</i></span>
<ul className="main-nav">
<li><Link to="/">Home</Link></li>
<li><Link to="/about">About</Link></li>
<li><Link to="/teachers">Teachers</Link></li>
<li><Link to="/courses">Courses</Link></li>
</ul>
</header>
<Route exact path="/" component={Home}/>
<Route path="/about" component={About}/>
<Route path="/teachers" component={Teachers}/>
<Route path="/courses" component={Course}/>
</div>
);
}
}
export default App;
我遇到的错误是:在浏览器中尝试访问“localhost:8080/about”时,出现“Cannot GET /about”的提示。但是,当我点击“about”按钮时,它会跳转到完全相同的URL“/about”,并且正确呈现。
()
是圆括号...所以你知道大括号{}
,你知道箭头函数中何时隐含了一个return
,以及如果需要返回值时何时需要它吗?你还知道在箭头函数中何时会使用() => ({});
吗?哦,基本上,那个函数只是返回<div> <h2>About</h2> </div>
。 - Jaromanda X