Vue-router的安装及使用

简单整理了vue-router的使用(未完),备忘。

Vue中的路由:
    --Vue-router的使用:
        1:安装Vue-router:
            npm install vue-router --save
        2:在main.js中引入Vue.use(VueRouter)
            import VueRouter from 'vue-router'
            Vue.use(VueRouter)
        3:配置路由:
            --1:创建组件,引入组件
            --2:定义路由(建议从官网复制)
                const routes = [
                  { path: '/foo', component: Foo },
                  { path: '/bar', component: Bar }
                ]
            --3:实例化VueRouter
                const router = new VueRouter({
                    routes // (缩写) 相当于 routes: routes
                })
            --4:挂载路由
                // 记得要通过 router 配置参数注入路由,
                // 从而让整个应用都有路由功能
                const app = new Vue({
                  router
                }).$mount('#app')
            --5:挂载的跟组件template中使用
            <div id="nav">
              <router-link to="/">Home</router-link> |
              <router-link to="/about">About</router-link> |
              <router-link to="/me">Me</router-link> |
              <router-link to="/test">Test</router-link>
            </div>
            <router-view />
    --重定向:
        重定向也是通过 routes 配置来完成。
        下面例子是从 /a 重定向到 /b:
            const router = new VueRouter({
              routes: [
                { path: '/a', redirect: '/b' }
              ]
            })
            默认寻找不到,重定向到首页:
            {
              path:"*",
              redirect:Home
            }
    --HTML5 History 模式:
        vue-router默认的hash模式使用url的hash来模拟一个完整的url,
        于是当url改变时,页面不会重新加载。(url带一个#号)
        如果不想要很丑的hash,我们可以用路由的history模式,
        这种模式充分利用history。pushState API来完成url的跳转而无需重新加载页面。
        使用方式:
            只需在new vuerouter时传入参数:mode:'history'即可。
        不过这种模式要玩好,还需要后台配置支持,因为我们的应用是个单页面客户端应用,
        如果后台没有正确的配置,当用户直接访问就会返回404.
        所以,需要在服务端增加一个覆盖所有情况的候选资源,如果url匹配不到任何静态资源,则应该返回同一个index.html,这个页面就是APP依赖的页面。
    --编程式导航:
        vue中除了可以通过<router-link>创建a标签来导航外,我们还可以借助router的实例方法,通过js代码来实现。
        在Vue实例内部,我们可以通过$router访问路由实例。因此可以通过this.router.方法来调用一些路由方法。
        --router.push()方法:
            语法:router.push(location,onComplete?,onAbort?)
                参数:
                    location:路由地址(可以是一个字符串路径或者一个描述地址的对象。)
                        例如:.push("./home")或者.push({path:'home'})
                    onComplete:加载后的事件
                    onAbort:对中止事件的处理
                    onComplate和onAbort回调作为第二个和第三个参数。这些回调将会在导航成功完成后(在所有的异步钩子被解析之后)
                    或终止(导航到相同的路由或在当前导航完成之前导航到另一个不同的路由)的时候进行相应的调用。
            router.push()方法回向history(历史)栈中添加一个新的记录,所以当用户点击浏览器后退按钮时,则回到之前的url。
            当我们点击<router-link>时这个方法实际上会在内部被调用,所以说<router-link :to="">等同于调用router.push()
        --router.replace():
            语法:router.replace(location,onComplate?,onAbort?)
            和push()功能很像,不同的是replace不会向history添加新记录,与他的方法名一样--替换掉当前的history记录。
            声明式(在router-link标签后添加replace属性):
                <router-link :to="" replace>
            参数:同push()方法
        --router.go(n):
            router.go()方法的参数是一个整数,意思是在history记录中向前或则向后退多少步,类似window.history.go(n)。
            使用实例:
                router.go(1):在浏览器记录中前进一步,等同于history.forward()。
                router.go(10):在浏览器记录中前进10步,等同于history.forward()
                router.go(-1):在浏览器记录中后退一步,等同于history.back()。
            注:如果步数不够那么执行将会失败,没有任何效果。
            
                
        
        

猜你喜欢

转载自blog.csdn.net/qq_41558265/article/details/89982044