day04-vuejs-路由(vue-router)

什么是路由:
  1. 后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;
  2. 前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;
  3. 在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由(区别于后端路由)。
路由-vue-router路由的基本使用:
1. 安装 vue-router 路由模块:
  
2. 创建一个路由对象

当 导入 vue-router 包之后,在 window 全局对象中,就有了一个 路由的构造函数,叫做 VueRouter
在 new 路由对象的时候,可以为 构造函数,传递一个配置对象

    var routerObj = new VueRouter({
      // route // 这个配置对象中的 route 表示 【路由匹配规则】 的意思
      routes: [ // 路由匹配规则 
         // { path: '/', component: login },
        { path: '/', redirect: '/login' }, // 这里的 redirect 和 Node 中的 redirect 完全是两码事
        { path: '/login', component: login },
        { path: '/register', component: register }
      ],
      linkActiveClass: 'myactive'
    }

每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
属性1 是 path, 表示监听 哪个路由链接地址;
属性2 是 component, 表示,如果 路由是前面匹配到的 path ,则展示 component 属性对应的那个组件
注意: component 的属性值,必须是一个 组件的模板对象, 不能是 组件的引用名称;

3.将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
// 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      router: routerObj
    });
4.在页面中放入容器(vue-router):

这是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view 中去
所以: 我们可以把 router-view 认为是一个占位符

 

5.router-link的使用:

router-link 默认渲染为一个a 标签可以用tag属性更改

    登录
    注册
6.redirect重定向的使用:

这里的 redirect 和 Node 中的 redirect 完全是两码事

  { path: '/', redirect: '/login' },
7.设置路由高亮的两种方式:

7.1.使用vue本身提供的类名修改样式:


7.2.在创建的router内修改类名实现:


image.png

在路由规则中定义参数:

方式1(使用(query)方式传递参数):

优点:如果在路由中,使用 查询字符串,给路由传递参数,则 不需要修改 路由规则的 path 属性

登录 注册

js:

 
image.png
2.使用(params)方式传递参数:

传值:

 
登录 注册


使用 children 属性实现路由嵌套:
 
Account

使用 children 属性,实现子路由,同时,子路由的 path 前面,不要带 / ,否则永远以根路径开始请求,这样不方便我们用户去理解URL地址

image.png

路由-命名视图(使用name属性):

css:

 

2.标签代码结构:

3js:

 

你可能感兴趣的:(day04-vuejs-路由(vue-router))