vue路由用法-金沙1005

vue路由用法_vue路由挂载vue-router 默认 hash 模式 —— 使用 url 的 hash 来模拟一个完整的 url,于是当 url 改变时,页面不会重新加载

学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。



大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路由就是url到函数的映射。


vue router 是 vue.js 官方的路由管理器,它和 vue.js 的核心深度集成。



基于location.hash来实现的。其实现原理也很简单,location.hash的值就是url中#后面的内容。比如下面这个网站,它的location.hash=’#me’:

https://localhost#me

hash也存在下面几个特性:

  • url中hash值只是客户端的一种状态,也就是说当向服务器端发出请求时,hash部分不会被发送。
  • hash值的改变,都会在浏览器的访问历史中增加一个记录。因此我们能通过浏览器的回退、前进按钮控制hash的切换。
  • 我们可以使用hashchange事件来监听hash的变化。

vue-router 默认 hash 模式 —— 使用 url 的 hash 来模拟一个完整的 url,于是当 url 改变时,页面不会重新加载。


如果不想要很丑的 hash,我们可以用路由的 history 模式,只需要在配置路由规则时,加入”mode: ‘history'”,这种模式充分利用 history.pushstate api 来完成 url 跳转而无须重新加载页面。其中做最主要的api有以下两个:history.pushstate()和history.repalcestate()。


const router = new vuerouter({
  mode: 'history',
  routes: [...]
})
vue路由用法_vue路由挂载

为防止网络爬虫,请关注公众号回复”口令”

激活idea 激活clion
datagrip dataspell
dotcover dotmemory
dottrace goland
phpstorm pycharm
resharper reshac
rider rubymine
webstorm 全家桶




vue路由用法_vue路由挂载


首先,安装vue-router


npm install vue-router

接下来,在main.js定义 (路由) 组件、安装插件、定义路由、创建 router 实例,然后传 routes 配置、创建和挂载根实例。


import vue from 'vue'
import vuerouter from 'vue-router';
import app from './app.vue'
import './plugins/element.js'
// 1. 定义 (路由) 组件。
import todolist from './components/todolist.vue';
import todolistwithui from './components/todolistwithui.vue'
import todolistwithapi from './components/todolistwithapi.vue'
vue.config.productiontip = false
// 2. 安装插件
vue.use(vuerouter); 
// 3. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 vue.extend() 创建的组件构造器,或者,只是一个组件配置对象。
const routes = [
  { path: '/noui', component: todolist },
  { path: '/ui', component: todolistwithui },
  { path: '/api', component: todolistwithapi }
]
// 4. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new vuerouter({
  routes // (缩写) 相当于 routes: routes
})
// 5. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
new vue({
  router,
  render: h => h(app),
}).$mount('#app')

最后,app.vue使用 router-link 组件来导航,和放置路由出口 router-view




目前为止,我们完成了vue-router的基本用法,是不是还是挺简单的呀。其他动态路由匹配、嵌套路由等用法我们在这里不进行展开了。

文中用到的代码我们放在:https://github.com/zcqiand/miscellaneous/tree/master/vue

js555888金沙老品牌的版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由思创斯整理,转载请注明出处:https://ispacesoft.com/122814.html

(0)

相关推荐

  • vue响应式原理实现_响应式布局的原理vue响应式原理介绍监听vue实例中的data选项,我们以下用一个普通的js对象模拟data,用object.defineproperty进行定义属性值的getter和setter方法。当data选择项中的key进行获取和修改时,vue内部会调用相应的方法。主要考虑以下两点:data中数据修改时,vue内部时如何监听到message数据的改变object.defineproperty当数据发送改变,vue是如何知道需要那些模板中用到的key进行页面刷新发布者订阅者模式响应式原理实现代码:

  • 如何在vue项目中使用md5加密npm安装:npminstall–savejs-md51.在需要使用的项目文件中引入:importmd5from’js-md5′;使用:md5(‘holle’)//bcecb35d0a12baad472fbe0392bcc0432.或者在main.js文件中将md5转换成vue原型:importmd5from’js-md5…

    2022年12月19日
  • vue 装饰器_vue组件使用作为一个曾经的java coder, 当我第一次看到js里面的装饰器(decorator)的时候,就马上想到了java中的注解,当然在实际原理和功能上面,java的注解和js的装饰器还是有很大差别的。本文题目是vue中使用装饰器,我是认真的,但本文将从装饰器的概念开发聊起,一起…

  • 一文让你彻底弄懂 “vue-style-loader” 跟 “style-loader” 区别一文让你彻底弄懂“vue-style-loader”跟“style-loader”区别简介用过vue-cli脚手架搭建vue项目都知道,vue-cli中内置了vue-style-loader去加载样式模块,最后通过

网站地图