vue路由

作者: 2764906e4d3d | 来源:发表于2018-12-23 19:49 被阅读0次

前端路由和后端路由:

  • 后端路由:对于普通的网站,所有的超链接都是url地址,所有url都对应服务器上对应的资源
  • 前端路由:对于单页面应用程序来说,主要通过url的hash(#)来实现不同页面的切换,同时hash还有一个特点HTTP请求中不会包含hash相关的内容,所以单页面程序中的页面跳转主要用hash实现
    在单页面应用程序中这种通过hash来改变页面的方式称作前端路由区别于后端路由

路由的使用

  1. 创建一个路由对象,当导入vue-router包之后,在window全局对象中就有一个路由的构造函数VueRouter
  2. 在new路由对象的时候可以传递一个配置对象,这个配置对象的route表示路由器的匹配规则
  3. 每个路由规则都是一个对象,这个规则对象身上必须有两个属性
    • 属性1 path表示监听哪个路由链接地址
    • 属性2 component,表示如果路由是前面匹配到的path,则展示component属性对应的组件,component属性值必须是一个组件模板对象,不能是组件的引用名称
var login={
            template:'<h2>登录</h2>'
        }
        var register={
            template:'<h2>注册</h2>'
        }
        var routerObj=new VueRouter({
            routes:[
                {path:'/login',component:login},
                {path:'/register',component:register}

            ]
        })
  1. router:routerObj将路由规则对象注册到VM实例上,用来监听URL地址的变化,然后展示对应的组件
var vm=new Vue({
                    el:'#div1',
                    data:{
                        
                    },
                    methods:{
                        
                        },
                    router:routerObj    
                    
                })
  1. 在控制的div中使用
 <router-view></router-view>
  1. 在搜索栏输入对应的匹配规则,login

  2. 使用vue官方提供的router-link元素使用,它默认渲染为一个a标签
<router-link to="/login">登录</router-link>
<router-link to="/register">注册</router-link>

路由重定向

  1. 设置一个默认展示组件,不推荐
{path:'/',component:login},
  1. 路由redirect重定向,设置默认组件
{path:'/',redirect:'login'},

路由传参

  1. 如果使用查询字符串 给路由传递参数则不需要修改路由规则的path属性
        <router-link to="/login?id=10">登录</router-link>
  1. 使用query传递参数
var login={
            template:'<h2>登录----{{$route.query.id}}</h2>'
        }
  1. 通过params方式传递路由参数,login后面会被解析为id的值
<router-link to="/login/12">登录</router-link>
{path:'/login/:id',component:login},
var login={
            template:'<h2>登录----{{$route.params.id}}</h2>'
        }

路由的嵌套

  • 使用children属性实现路由嵌套,子路由path前不要加/,否则永远以根路径开始请求
        <div id="div1"
            <router-link to="/account">account</router-link>
                        <router-view></router-view>
        </div>
        <template id="tmp1">
            <div>
                <h2>account 组件</h2>
                <router-link to="/account/login">登录</router-link>
                <router-link to="/account/register">注册</router-link>
                <router-view></router-view>
            </div>
        </template>
var router=new VueRouter({
                routes:[
                    {path:'/account',component:account,
                    children:[
                        {path:'login',component:login},
                        {path:'register',component:register}
                    ]}
                ]
            })

命名视图

  • 命名视图在components(这时会多个s)后加属性再在使用<router-view></router-view>的时候用name引入,可以使一个页面中存在多个路由
            <router-view></router-view>
            <router-view name="left"></router-view>
            <router-view name="main"></router-view>
var router=new VueRouter({
                routes:[
                    {path:'/',components:{
                        default:header,
                        left:leftBox,
                        main:mainBox
                    }},
                    
                ]
            })

相关文章

  • Vue应用

    Vue项目 Vue结构 Vue项目打包与发布 Vue语法二 Vue网络请求 Vue路由 动态路由 编程式路由导航

  • vue路由、自定义指令、脚手架

    *Vue vue-router 一、路由 一、导航式路由 路由路径由

  • Vue路由

    一、Vue路由基础用法: 二、Vue路由配置的抽出 三、路由动态传值: 四、路由的跳转方式: 五、路由的hash模...

  • 手写 Vue Router、手写响应式实现、虚拟 DOM 和 D

    Vue-Router 原理实现 一、Vue-Router 动态路由 二、Vue-Router 嵌套路由 三、Vue...

  • 2018-09-19 vue 八

    一 :路由路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • 6 VUE路由

    vue-> SPA应用,单页面应用(引入vue-router.js) 路由嵌套(多层路由): 路由其他信息:

  • vue路由的介绍(二)--vue动态路由和get的传值

    vue动态路由和get的传值---->同属于路由的传参 1,vue动态路由: 动态路由的配置: ①,在配置路由时加...

  • 2018-09-23 路由

    1.路由 路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • 2018-09-19 Vue 第八天

    1.路由 路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • vue路由

    vue路由--- SPA应用,单页面应用vue-resouce 交互vue-router 路由根据不同url地址...

网友评论

    本文标题:vue路由

    本文链接:https://www.haomeiwen.com/subject/gdmnkqtx.html