почему я не использую плагин hashHistory, URL имеет хэш-суффиксы

#javascript #reactjs #webpack

#javascript #reactjs #webpack

Вопрос:

index.js (предыдущий)

 import React from 'react'
import { render } from 'react-dom'
import { Router, Route } from 'react-router'
import App from './modules/App'

render((
  <Router history={hashHistory}>
    <Route path="/" component={App}/>
    <Route path="/repos" component={Repos}/>
    <Route path="/about" component={About}/>
  </Router>
), document.getElementById('app'))
  

App.js

 import React from 'react'

export default React.createClass({
  render() {
    return (
        <div>
            <h1>React Router Tutorial</h1>
        </div>
    )
  }
})
  

url

 http://localhost:8080/#/?_k=8cu99t
  

когда я удаляю history={hashHistory} , у него также есть хэш-суффиксы после url.
Я не знаю почему, код о hashHistory был удален.

Ответ №1:

Если вы не хотите, чтобы маршрутизация на основе хэша изменяла hashHistory с помощью browserHistory, ваш index.js будет выглядеть примерно так:

 import React from 'react'
import { render } from 'react-dom'
import { Router, Route, browserHistory } from 'react-router'
import App from './modules/App'

render((
  <Router history={browserHistory}>
    <Route path="/" component={App}/>
    <Route path="/repos" component={Repos}/>
    <Route path="/about" component={About}/>
  </Router>
), document.getElementById('app'))
  

Пожалуйста, обратите внимание, что если вы хотите иметь browserHistory, вам нужно будет настроить сервер для обработки маршрутов на стороне сервера, более подробную информацию можно найти здесь