/#/
在使用react-router时,有什么方法可以防止在浏览器的地址栏中显示?那就是ReactJS。即,单击链接以转到新路线将显示localhost:3000/#/
或
localhost:3000/#/about
。取决于路线。
如何使用react-router在浏览器中停止/#/?
您实际上可以使用.htaccess来完成此操作。浏览器通常需要查询字符串定界符?
或#
确定查询字符串在何处开始以及目录路径在何处结束。我们想要的最终结果是www.mysite.com/dir
因此,我们需要在Web服务器搜索它认为我们想要的目录之前捕获问题/dir
。因此,我们将.htaccess
文件放置在项目的根目录中。
# Setting up apache options
AddDefaultCharset utf-8
Options +FollowSymlinks -MultiViews -Indexes
RewriteEngine on
# Setting up apache options (Godaddy specific)
#DirectoryIndex index.php
#RewriteBase /
# Defining the rewrite rules
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^.*$ ./index.html
然后使用window.location.pathname获取查询参数
然后,您可以根据需要避免使用react路由,并且也可以仅操纵url和浏览器历史记录。希望这可以帮助某人...
如果不需要支持IE8,则可以使用“浏览器历史记录”,然后使用react-router
window.pushState
代替设置哈希。具体如何执行取决于您使用的React Router版本: