• Vue路由


    Vue路由

    SPA是什么

    单页Web应用(single page application,SPA),就是只有一个Web页面的应用,
    是加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序

    单页面应用程序:
    只有第一次会加载页面, 以后的每次请求, 仅仅是获取必要的数据.然后, 由页面中js解析获取的数据, 展示在页面中传统多页面应用程序:
    对于传统的多页面应用程序来说, 每次请求服务器返回的都是一个完整的页面

    优势
    减少了请求体积,加快页面响应速度,降低了对服务器的压力
    更好的用户体验,让用户在web app感受native app的流畅

    SPA实现思路和技术点

    1 ajax
    2 锚点的使用(window.location.hash #
    3 hashchange 事件 window.addEventListener("hashchange",function () {})
    4 监听锚点值变化的事件,根据不同的锚点值,请求相应的数据
    5 原本用作页面内部进行跳转,定位并展示相应的内容

    路由思路

    1、确保引入Vue.vue-routerjs依赖
    2、首先需要定义组件(就是展示不同的页面效果)
    3、需要将不同的组件放入一个容器中(路由集合)
    4、将路由集合组装成路由器
    5、将路由挂载到Vue实例中
    6、定义锚点
    7、跳转

    引入依赖库

    1 <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
    2 <script src="https://cdn.bootcss.com/vue-router/3.1.2/vue-router.js"></script>

    创建自定义组件,例如:HomeAbort组件

    extend是构造一个组件的语法器. 你给它参数,他给你一个组件,然后这个组件
    你可以作用到Vue.component这个全局注册方法里,也可以在任意vue模板里使用car组件

    也可以用以前的方式创建和获得组件,效果也是一样的
    Vue.component("button-counter", {...});//创建组件
    var ButtonCounter = Vue.component('button-counter');//获得组件

    1 const Home = Vue.extend({
    2                     template: '<div><p>首页</p><div>首页内容</div></div>'
    3                 });
    4         
    5       const Abort = Vue.extend({
    6                     template: '<div><p>关于首页</p><div>首页信息</div></div>'
    7                 });

    添加url与组件的映射关系(组合路由) 

    根路径“/”

     1 let routes = [
     2                     {
     3                         path:'/',
     4                         component:Home
     5                     },{
     6                         path:'/Home',
     7                         component:Home
     8                     },{
     9                         path:'/Abort',
    10                         component:Abort
    11                     },
    12                 ]

    创建路由器实例,然后传 `routes` 配置

    routerouter的区别
    route:路线
    router:路由器
    路由器中包含了多个路线

    1 const router = new VueRouter({routes})                

    创建和挂载根实例。

    1 new Vue({
    2             el:'#app',
    3             router,
    4             data:{                
    5             }            
    6         })        

    第二种:

    1  var vm = new Vue({router: router}).$mount('#app'); 

    router-link相关属性

    to

    表示目标路由的链接

    replace

    设置 replace 属性的话,当点击时,会调用 router.replace() 而不是 router.push(),导航后不会留下 history 记录。

    1 <router-link to="/Home" replace>首页</router-link>
    2 <router-link to="/Abort" replace>关于本站</router-link>

    代码:

     1 <!DOCTYPE html>
     2 <html>
     3     <head>
     4         <meta charset="utf-8">
     5         <title>Vue路由</title>
     6         <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
     7         <script src="https://cdn.bootcss.com/vue-router/3.1.2/vue-router.js"></script>
     8     </head>
     9     <body>
    10         <div id="app">
    11             <router-link to="/Home" replace>首页</router-link>
    12             <router-link to="/Abort" replace>关于本站</router-link>
    13             <router-view></router-view>
    14         </div>        
    15     </body>
    16     <script type="text/javascript">
    17         /* 创建组件 */
    18         const Home = Vue.extend({
    19                     template: '<div><p>首页</p><div>首页内容</div></div>'
    20                 });
    21         
    22                 const Abort = Vue.extend({
    23                     template: '<div><p>关于首页</p><div>首页信息</div></div>'
    24                 });
    25                 /* 添加url与组件的映射关系(组合路由) */
    26                 let routes = [
    27                     {
    28                         path:'/',
    29                         component:Home
    30                     },{
    31                         path:'/Home',
    32                         component:Home
    33                     },{
    34                         path:'/Abort',
    35                         component:Abort
    36                     },
    37                 ]
    38                 /* 将路由的集合组合成路由器 */
    39                 const router = new VueRouter({routes})                
    40         new Vue({
    41             el:'#app',
    42             router,
    43             data:{
    44                 msg:'Hollo Vue!!!'
    45             }
    46             
    47         })        
    48     </script>
    49 </html>
  • 相关阅读:
    译:编程面试的10大算法概念汇总
    Android内存优化之封装九宫格
    Android Java 程序员必备开发工具
    译:如何成为一个通晓多种编程语言的程序员
    8大排序算法图文讲解
    Android酷炫实用的开源框架(UI框架)
    Android动态加载字节码
    利用无效字节码指令引发逆向工具崩溃(二)
    oracle 12c linux服务器启动监听
    oracle无主键去重方法
  • 原文地址:https://www.cnblogs.com/xcn123/p/11396654.html
Copyright © 2020-2023  润新知