我有一个应用程序,我想添加一个管理页面。我希望管理页面有自己的布局从客户端布局分开。以我现有的情况来看,实现这一目标的当前“最佳”方式是什么?
app.js
import './App.css';
import { BrowserRouter as Router, Route, Switch } from "react-router-dom";
import HomePage from './pages/HomePage';
import ItemDetailPage from './pages/ItemDetailPage';
import Header from './components/Header';
import Footer from './components/Footer';
import CollectionPage from './pages/CollectionPage';
import AdminPage from './pages/AdminPage';
function App() {
return (
<Router>
{/* Admin app routes */}
{/* <Route exact path="/admin" component={AdminPage}/> */}
{/* Client app routes */}
<div className="app">
<Header />
<Switch>
<Route exact path="/" component={HomePage}/>
<Route exact path="/item/:itemID" component={ItemDetailPage}/>
<Route exact path="/collections/:collection" component={CollectionPage}/>
</Switch>
<Footer />
</div>
</Router>
);
}
export default App;
HOC
export default function ClientLayoutHOC(props) {
const {component: Component, ...rest} = props;
return (
<div className="app">
<Header />
{/*<Component {...rest}/> */}
{props.children}
<Footer />
</div>
)
}
我找到了这个。我应该创建一个AdminLayout
和ClientLayout
组件并过滤页面吗?
您可以创建一个高阶组件,并将其添加到非管理员页面,如下所示:HOC可以包含div包装器以及页眉和页脚。
然后所有路由在路由器中保持干净。开关
下面的HOC、HomePage、ItemDetailPage和CollectionPage的匿名函数是您将对这些组件进行更改的示例。HOC组件也将是一个单独的组件。
const HOC = (props) => {
const {component: Component, ...rest} = props;
return (
<div className="app">
<Header/>
<Component {...rest}/>
<Footer/>
</div>
)
}
const HomePage = (props) => {
return (
<HOC>
{/* replace with HomePage content*/}
</HOC>
)
}
const ItemDetailPage = (props) => {
return (
<HOC>
{/* replace with ItemDetailPage content*/}
</HOC>
)
}
const CollectionPage = (props) => {
return (
<HOC>
{/* replace with CollectionPage content*/}
</HOC>
)
}
function App() {
return (
<Router>
<Switch>
{/* Admin app routes */}
<Route exact path="/admin" component={AdminPage}/>
{/* Client app routes */}
<Route exact path="/" component={HomePage} />
<Route exact path="/item/:itemID" component={ItemDetailPage}/>
<Route exact path="/collections/:collection" component={CollectionPage}/>
</Switch>
</Router>
);
}
在查看添加的HOC代码时,我建议进行以下更改:
export default function ClientLayoutHOC(props) {
const {component: Component, children, ...rest} = props;
return (
<div className="app">
<Header />
<Component {...rest}>
{children}
</Component>
<Footer />
</div>
)
}
我需要从获取一些数据,并在中显示这些数据。我成功地从API获得了,但这只是数据的一部分,还有更多。如何获取的其余部分?是否应该在客户端处理?我是否应该使用不同的URL来获取更多数据?提前谢谢你。
什么是Gateway Worker分离部署 GatewayWorker有三种进程,Gateway进程负责网络IO,BusinessWorker进程负责业务处理,Register进程负责协调Gateway与BusinessWorker之间建立TCP长连接通讯。我们可以把Gateway BusinessWorker Register分开部署在不同的服务器上,当业务进程BusinessWorker出现瓶
问题内容: 是否有与之等效或替代的 它给出以下错误 系统类型中的方法getProperty(String,String)不适用于参数(String) 问题答案: 我认为您需要在服务器端代码中执行并使用RPC或任何其他服务器端gwt通信技术来访问它。 检查GWT JRE仿真: GWT包含一个模仿Java运行时库子集的库。下面的列表显示了GWT可以自动转换的JRE软件包,类型和方法的集合。请注意,在某
问题内容: 我有一个Google Maps应用程序占据了大部分页面。但是,我需要为菜单栏保留最上方的空间。如何使地图div自动填充其垂直空间? 不起作用,因为顶部栏随后会将地图推到页面底部。 问题答案: 您可以使用绝对定位。 HTML CSS 通过绝对定位并指定top,right,bottom和left属性,您将获得一个div占用整个视口。 然后,设置上为> =的高度。 最后,将其放置在内部并进行
问题内容: 我有以下SQL: 在Oracle SQL Developer 4.0.0.13(连接到DB2数据库)中,我在以下斜体下面显示了 一条弯曲的 行:“ from pluspbillline ”和“ left external join workorder ”。 警告说:“ pluspbillline已与连接图的其余部分断开连接”。这是什么意思? 问题答案: 我不确定是什么原因导致Oracl
本文向大家介绍clojure 将序列的其余部分转换为图,包括了clojure 将序列的其余部分转换为图的使用技巧和注意事项,需要的朋友参考一下 示例 解构还使您能够将序列解释为图: 这对于使用命名参数定义函数很有用: