我可以在不同的版本中同时使用哈希路由器和普通路由器吗?

问题描述 投票:0回答:1

我想制作一个完全响应式的网站,我想用 Cordova 包装它来制作一个移动应用程序。

但是Cordova只支持哈希路由器。

我可以让我的移动构建使用哈希路由器而不是普通路由器,只使用一个代码库吗? 或者考虑到这种代码重用需求,什么是好的路由策略?

即 Cordova 构建将使用

/index.html#user/profile
并且网页将使用
/user/profile

reactjs cordova react-router tanstack-router
1个回答
0
投票

如果我没记错的话,Cordova 构建会将

cordova
属性注入到全局
window
对象中。您可以检查当前的应用程序版本是否适用于 Cordova,并有条件地使用一个路由器或另一个。

示例:

import {
  HashRouter,
  BrowserRouter,
} from 'react-router-dom';

const App = () => {
  const AppRouter = React.useMemo(() => {
    return window.cordova ? HashRouter : BrowserRouter;
  }, []);

  return (
    <AppRouter>
      ...
    </AppRouter>
  );
};
© www.soinside.com 2019 - 2024. All rights reserved.