• Vue学习之路由vue-router小结(九)


    一、路由:

    1、后端路由:

      对于普通网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源;

    2、前端路由:

      对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash之间有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;

    3、在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由!!!

    二、安装:

    官网:https://router.vuejs.org/zh/installation.html

    JS:https://unpkg.com/vue-router/dist/vue-router.js

    三、使用:

    1、导入及创建对象:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>路由</title>
        <script src="./lib/vue.js"></script>
        <!-- 1.安装vue-router路由模块 -->
        <script src="./lib/vue-router.js"></script>
        <style></style>
      </head>
      <body>
        <div id="app">
          <!-- <a href="#/login">登录</a>
          <a href="#/register">注册</a> -->
    
          <!-- router-link 默认渲染成一个 a 标签 -->
          <router-link to="/login" tag="span">登录</router-link>
          <router-link to="/register">注册</router-link>
    
          <!-- 这是 vue-router 提供的元素,专门用来当做占位符的,将来,
          路由规则,匹配到的组件,就会展示到这个 router-view 中去-->
          <!-- 我们可以把 router-view 认为是一个占位符 “ 留坑” -->
          <router-view></router-view>
        </div>
    
        <script>
          var login = {
            template: "<h1>登录组件</h1>"
          };
          var register = {
            template: "<h1>注册组件</h1>"
          };
          // 2.创建一个路由对象,当导入 vue-router 包之后,在 window 全局对象中,就有了
          //一个路由的构造函数,叫做 VueRouter
          // 在new 路由对象的时候,可以为 构造函数,传递一个配置对象
          var routerObj = new VueRouter({
            // route 这个配置对象中的 route 表示【路由匹配规则】的意思
            routes: [
              //路由匹配规则
              // 每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
              // 属性1:path 表示监听哪个路由链接地址
              // 属性2: component 表示,如果路由是前面匹配到的 path,则展示 component 属性对应的那个组件
              //component 的属性值,必须是一个组件的模板对象,不能是组件的引用名称
              { path: "/login", component: login },
              { path: "/register", component: register }
            ]
          });
          var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            // 将路由规则对象,注册到VM 实例上,用来监听 url地址的变化,然后展示对应的组件
            router: routerObj
          });
        </script>
      </body>
    </html>

     2、重定向(打开时默认导向的位置:可以在地址栏上查看区别)

     { path: "/", redirect: "/login" },

    例子中,是默认打开时就导向login页面

    3、设置路由高亮的方式(两种:第二种直接样式里定义即可):

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
        <title>路由</title>
        <script src="./lib/vue.js"></script>
        <!-- 1.安装vue-router路由模块 -->
        <script src="./lib/vue-router.js"></script>
        <style>
          /* 2.第二种设置路由高亮的方式---直接设置,不需要再定义 */
          .router-link-active {
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
          }
          /* 1.1第一种设置路由高亮的方式--需要定义下 */
          .myactive {
            color: red;
            font-weight: 800;
            font-style: italic;
            font-size: 80px;
            text-decoration: underline;
            background-color: green;
          }
        </style>
      </head>
      <body>
        <div id="app">
          <!-- <a href="#/login">登录</a>
          <a href="#/register">注册</a> -->
    
          <!-- router-link 默认渲染成一个 a 标签 -->
          <router-link to="/login">登录</router-link>
          <router-link to="/register">注册</router-link>
    
          <!-- 这是 vue-router 提供的元素,专门用来当做占位符的,将来,
          路由规则,匹配到的组件,就会展示到这个 router-view 中去-->
          <!-- 我们可以把 router-view 认为是一个占位符 “ 留坑” -->
          <router-view></router-view>
        </div>
    
        <script>
          var login = {
            template: "<h1>登录组件</h1>"
          };
          var register = {
            template: "<h1>注册组件</h1>"
          };
          // 2.创建一个路由对象,当导入 vue-router 包之后,在 window 全局对象中,就有了
          //一个路由的构造函数,叫做 VueRouter
          // 在new 路由对象的时候,可以为 构造函数,传递一个配置对象
          var routerObj = new VueRouter({
            // route 这个配置对象中的 route 表示【路由匹配规则】的意思
            routes: [
              //路由匹配规则
              // 每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
              // 属性1:path 表示监听哪个路由链接地址
              // 属性2: component 表示,如果路由是前面匹配到的 path,则展示 component 属性对应的那个组件
              //component 的属性值,必须是一个组件的模板对象,不能是组件的引用名称
              // redirect 是重定向,定义打开页面的默认的导向哪个页面,可以在地址栏中具体查看
              { path: "/", redirect: "/login" },
              { path: "/login", component: login },
              { path: "/register", component: register }
            ]
            // 1.2第一种设置路由高亮的方式--需要定义的部分
            //  linkActiveClass: "myactive"
          });
          var vm = new Vue({
            el: "#app",
            data: {},
            methods: {},
            // 将路由规则对象,注册到VM 实例上,用来监听 url地址的变化,然后展示对应的组件
            router: routerObj
          });
        </script>
      </body>
    </html>

     4、设置路由的动画:

    样式内加上:

     .v-enter,
          .v-leave-to {
            opacity: 0;
            transform: translateX(150px);
          }
          .v-enter-active,
          .v-leave-active {
            transition: all 0.8s ease;
          }

    然后:

    <transition mode="out-in">
            <router-view></router-view>
     </transition>
  • 相关阅读:
    c#调用c++动态链接库的问题
    “LC.exe”已退出,代码为 -1
    MVC部署到iis
    计算机上没有找到was服务
    无法查找或打开pdb文件
    用WCF服务来动态的获取本地XML省市区文档
    关于使用条码打印机指令打印汉字的问题
    关于SQL SERVER导出数据的问题!
    应用CLR的线程池
    所有的异常都要使用try catch 语句捕获?
  • 原文地址:https://www.cnblogs.com/21-forever/p/11108691.html
Copyright © 2020-2023  润新知