router-link和router.push实现跳转的原理
总体区别:router-link标签实现,router.push通过JS实现
router-link
<router-link :to="...">
会在页面渲染的时候就加载对应的路由比起直接写的方式的优点:不管是h5的history还是hash模式,切换的时候很方便;会默认阻止浏览器的默认事件;写路径的时候不用写基路径了。
①默认会渲染为 a 标签(). 可以通过 tag 属性修改为其他标签
②自动为 a 标签添加 click 事件. 然后执行
$router.push() 实现跳转
$router.push
$router.push("/myroute")
跳转到对应的路径,可在页面中写对应的点击事件,然后执行对应的方法中写跳转,可在跳转前再写一些别的逻辑。
根据路由配置的 mode 确定使用 HTML5History 还是 HashHistory 实现跳转
HTML5History : 调用 window.history.pushState() 跳转
HashHistory : 调用HashHistory.push() 跳转