欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  一、路由:
 
  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、导入及创建对象:
 
  <!DOCTYPEhtml>
 
  <htmllang="en">
 
  <head>
 
  <metacharset="UTF-8"/>
 
  <metaname="viewport"content="width=device-width,initial-scale=1.0"/>
 
  <metahttp-equiv="X-UA-Compatible"content="ie=edge"/>
 
  <title>路由</title>
 
  <scriptsrc="./lib/vue.js"></script>
 
  <!--1.安装vue-router路由模块-->
 
  <scriptsrc="./lib/vue-router.js"></script>
 
  <style></style>
 
  </head>
 
  <body>
 
  <divid="app">
 
  <!--<ahref="#/login">登录</a>
 
  <ahref="#/register">注册</a>-->
 
  <!--router-link默认渲染成一个a标签-->
 
  <router-linkto="/login"tag="span">登录</router-link>
 
  <router-linkto="/register">注册</router-link>
 
  <!--这是vue-router提供的元素,专门用来当做占位符的,将来,
 
  路由规则,匹配到的组件,就会展示到这个router-view中去-->
 
  <!--我们可以把router-view认为是一个占位符“留坑”-->
 
  <router-view></router-view>
 
  </div>
 
  <script>
 
  varlogin={
 
  template:"<h1>登录组件</h1>"
 
  };
 
  varregister={
 
  template:"<h1>注册组件</h1>"
 
  };
 
  //2.创建一个路由对象,当导入vue-router包之后,在window全局对象中,就有了
 
  //一个路由的构造函数,叫做VueRouter
 
  //在new路由对象的时候,可以为构造函数,传递一个配置对象
 
  varrouterObj=newVueRouter({
 
  //route这个配置对象中的route表示【路由匹配规则】的意思
 
  routes:[
 
  //路由匹配规则
 
  //每个路由规则,都是一个对象,这个规则对象,身上,有两个必须的属性:
 
  //属性1:path表示监听哪个路由链接地址
 
  //属性2:component表示,如果路由是前面匹配到的path,则展示component属性对应的那个组件
 
  //component的属性值,必须是一个组件的模板对象,不能是组件的引用名称
 
  {path:"/login",component:login},
 
  {path:"/register",component:register}
 
  ]
 
  });
 
  varvm=newVue({
 
  el:"#app",
 
  data:{},
 
  methods:{},
 
  //将路由规则对象,注册到VM实例上,用来监听url地址的变化,然后展示对应的组件
 
  router:routerObj
 
  });
 
  </script>
 
  </body>
 
  </html>
 
  2、重定向(打开时默认导向的位置:可以在地址栏上查看区别)
 
  {path:"/",redirect:"/login"},
 
  例子中,是默认打开时就导向login页面
 
  3、设置路由高亮的方式(两种:第二种直接样式里定义即可):
 
  <!DOCTYPEhtml>
 
  <htmllang="en">
 
  <head>
 
  <metacharset="UTF-8"/>
 
  <metaname="viewport"content="width=device-width,initial-scale=1.0"/>
 
  <metahttp-equiv="X-UA-Compatible"content="ie=edge"/>
 
  <title>路由</title>
 
  <scriptsrc="./lib/vue.js"></script>
 
  <!--1.安装vue-router路由模块-->
 
  <scriptsrc="./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>
 
  <divid="app">
 
  <!--<ahref="#/login">登录</a>
 
  <ahref="#/register">注册</a>-->
 
  <!--router-link默认渲染成一个a标签-->
 
  <router-linkto="/login">登录</router-link>
 
  <router-linkto="/register">注册</router-link>
 
  <!--这是vue-router提供的元素,专门用来当做占位符的,将来,
 
  路由规则,匹配到的组件,就会展示到这个router-view中去-->
 
  <!--我们可以把router-view认为是一个占位符“留坑”-->
 
  <router-view></router-view>
 
  </div>
 
  <script>
 
  varlogin={
 
  template:"<h1>登录组件</h1>"
 
  };
 
  varregister={
 
  template:"<h1>注册组件</h1>"
 
  };
 
  //2.创建一个路由对象,当导入vue-router包之后,在window全局对象中,就有了
 
  //一个路由的构造函数,叫做VueRouter
 
  //在new路由对象的时候,可以为构造函数,传递一个配置对象
 
  varrouterObj=newVueRouter({
 
  //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"
 
  });
 
  varvm=newVue({
 
  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:all0.8sease;
 
  }
 
  然后:
 
  <transitionmode="out-in">
 
  <router-view></router-view>
 
  </transition>

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h56513.shtml