【发布时间】:2016-08-04 19:43:57
【问题描述】:
我正在尝试将我学到的知识应用到一个网站中。我正在构建我网站的第一部分“导航栏”
顶部有徽标和 2 个链接(主页按钮、注销按钮)和侧导航栏(MaterilizeCss sidenav)栏(在移动设备上变成汉堡菜单)。
现在侧导航有这个
所有学生课程的列表(一旦他们点击课程,它将在网站容器中间加载该课程)
在他们的课程列表下方是一个“添加课程”按钮,用于添加更多课程。
现在
我很困惑这些应该是容器还是组件?现在我把我的 NavBar 做成了一个容器。
虽然我认为显示“课程”将是一个组件(尽管我猜它可能是一个带有课程列表的容器,然后当然是组件)并且“添加课程”也将是一个组件。
我也有一个 App 组件(但也许它应该是一个容器),其中包含所有其他容器/组件。
export default class App extends React.Component {
render() {
return (
<NavBar />
)
}
}
想法?
编辑
我有一些代码(html 代码)。它可能更容易看出我应该如何分解它
<nav className="light-blue">
<div className="nav-wrapper container">
<a id="logo-container" href="#" className="brand-logo">App</a>
<ul className="right hide-on-med-and-down">
<li><a href="/Home/Index"><i className="fa fa-2x fa-home" aria-hidden="true"></i></a></li>
<li><a href="/Account/SignOut"><i className="fa fa-sign-out fa-2x " aria-hidden="true"></i></a></li>
</ul>
<ul id="slide-out" className="side-nav fixed">
<li>
<a href="#!">Course 1</a>
</li>
<li>
<a href="#!">Course 2</a>
</li>
<li>
<a href="#!">Course 3</a>
</li>
<li>
<a className="waves-effect waves-light"><i className="fa fa-plus" aria-hidden="true">Add</i></a>
</li>
<li className="hide-on-large-only"><a href="/Home/Index">Home</a></li>
<li className="hide-on-large-only"><a href="/Account/SignOut">Signout</a></li>
</ul>
<a href="#" data-activates="slide-out" className="button-collapse"><i className="material-icons">menu</i></a>
</div>
</nav>
我有这个组件:
export default class App extends React.Component {
render() {
return (
<NavBarContainer />
)
}
}
所以现在 NavBarContainer 吐出了我发布的整个 html。我当然需要打破这个。
我可以拥有 SideNavContainer,然后是课程组件。
【问题讨论】: