dva 路径中# 怎么去掉

发布于 2022-09-06 14:59:12 字数 438 浏览 16 评论 0

比如我要访问的是首页 http://localhost:3000/
地址栏显示的是 http://localhost:3000/#/
这样子就很丑了,请问要怎么去掉?

还有就是看到vue教程中的demo 路径中也是带#,路径中带#这样做有什么意义吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

浅笑依然 2022-09-13 14:59:12
  1. 页面不用重新发起HTTP请求
  2. 没有兼容问题,如果不带#号,需要使用html5的historyAPI,老浏览器不兼容
指尖微凉心微凉 2022-09-13 14:59:12

刚刚爬完这个坑,我真的不能理解为什么那么多人不停地回答一些不能用的答案,能不能自己试试再来写?

首先,经过本人测试,
import { BrowserHistory } from 'dva/router' 这个 history 是不能去掉#的!!!
应该使用
import { createBrowserHistory } from 'history'
注意这里的 createBrowserHistory 是一个方法,执行后返回一个 history 对象,和上面那个 BrowserHistory 不同!
然后在dva的初始化对象里写:
const app = dva({ history: createBrowserHistory() })

以下是我的代码:

import React from 'react';
import dva from 'dva';
import { BrowserRouter as Router, Route } from 'dva/router';
import { createBrowserHistory } from 'history';
import { getModels } from './utils/combiner';
import './global.scss';

import mainRect from './pages/mainRect/main';

const app = dva({
  history: createBrowserHistory()
});

app.router(() =>
  <Router>
    <Route path={'/'} component={mainRect} />
  </Router>
);

getModels().map((model) => app.model(model));

app.start('#main-rect');
说谎友 2022-09-13 14:59:12

带#的url 一般是hasHistory,所以你只需要设置相应的history就可以了。

×纯※雪 2022-09-13 14:59:12

在index.js里
import { createBrowserHistory as createHistory } from 'history'

const app = dva({
history:createHistory()
});

ps:dva2.3.1版已不能直接使用history:browserHistory来修改hash路由

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文