第6章:vue-router,vue-cli和单文件组件


  四,vue-router路由

  1.简介

  使用Vue.js开发SPA(Single Page Application)单页面应用

  根据不同url地址,显示不同的内容,但显示在同一个页面中,称为单页面应用

  参考官网:https://router.vuejs.org/zh/

  下载

  使用cnpm下载

cnpm install vue-router@2.7.0 -S

  下载后的js文件在当前目录下

node_modules/vue-router/dist

  2.基本用法

  html

主页 新闻

  JavaScripts


  完整代码如下day03/09.html

  注意:引入vue.js需要在vue-router.js之前,否则控制台报错,原因不明

Unknown custom element: 



    
    
    路由基本用法
    
    
    
  


    
主页 新闻

  页面显示,点击主页显示我是主页,新闻显示我是新闻

   注意到点击链接会自动加#,如果不想看到这个#修改路由实例模式mode默认为hash修改为history

 const router=new VueRouter({
            // routes //简写相当于routes:routes
            routes,
            mode:'history'
        });

  页面显示

   点击主页或者新闻也是有默认样式的,可以通过控制台查看到  

   修改样式,在标签内增加以下代码


  页面显示

   如果觉得这个样式名称太复杂也可以修改样式名

 // 3.创建路由实例
        const router=new VueRouter({
            // routes //简写相当于routes:routes
            routes,
            // mode:'history'
            linkActiveClass:'active' //更新活动链接的class类名
 });

  同时样式定义的时候也修改对应的名称


  默认打开页面是不显示主页或者新闻的需要点击才显示,可以通过路由重定向,例如打开首页显示Home或者在没有找到路由的情况下跳转至Home

  修改配置路由代码

 // 2.配置路由
    const routes=[
        {path:'/home',component:Home},
        {path:'/news',component:News},
       {path:'*',redirect:'/home'} //重定向
     ]

  页面显示,默认显示Home,如果随意写一个没有的路由也会跳到Home

  3.路由嵌套和参数的传递

   路由嵌套:路由对应的链接下还有链接

  把上面设置的路由新闻处改成用户,用户下面又有两个链接分别为用户登录和用户注册

  day03/10.html




    
    
    路由嵌套和参数的传递
    
    
    
    
  


    
主页 用户

  解析:在设置路由下新加关键字children对应嵌套的路由,写法是一致的

  页面显示

   上面写法是把标签写入到标签

  • 内,也可以直接写标签通过关键字tag来指定包含的标签类型为
  • ,以下为简化写法,效果是一样的

                    
                    用户登录
                    用户注册
    

      传递参数的两种形式

      a.查询字符串:login?name=tom&pwd=123

        {{$route.query}}

      b.rest风格url:regist/alice/456

        {{$route.params}}

      传递参数获取示例,修改代码,演示两种传递参数及如何获取传递的参数

    
    
    
        
        
        路由嵌套和参数的传递
        
        
        
        
      
    
    
        
    主页 用户

      解析

     

       注意:使用方式1直接传递即可,使用方式2为了不让浏览器认为传递的参数是路由需要定义,传递参数的方式,如下

       页面显示

     

       4.路由实例的方法

      router.push()添加路由,功能上与相同

      router.replace()替换路由,不产生历史记录

      示例 day03/10.html

    
    
    
        
        
        路由嵌套和参数的传递
        
        
        
        
      
    
    
        
    主页 用户

      解析

      增加两个按钮分别调用添加路由和替换路由的方法

       方法如下,分别把路由指向home和user

       页面显示

     

       两者的区别在于替换路由是没有历史记录的即替换路由的上一页

      5.路由结合动画

      利用之前学的animate.css可以给路由结合动画,只需要给标签套在标签内即可

      day03/10.html

    
    
    
        
        
        
        路由嵌套和参数的传递
        
        
        
        
      
    
    
        
    主页 用户

      解析

       添加动态进入出去动画

      五,单文件组件

      1. .vue文件

      .vue文件,称为单文件组件,是Vue.js自定义的一种文件格式,一个.vue文件就是一个单独的组件,在文件内封装了组件相关的代码:html,css,js

      .vue文件由三部分组成