Vue Router

Vue Router

Vue Router 是 Vue.js 的官方插件,用来快 速实现单页应用。

单页应用

SPA(Single Page Application)单页面应 用程序,简称单页应用。
指的是网站的 “所有” 功能都在单个页面中进行呈现。
具有代表性的有后台管理系统、移动端、小程序等。

优点:
  • 前后端分离开发,提高了开发效率。
  • 业务场景切换时,局部更新结构。
  • 用户体验好,更加接近本地应用。
缺点:
  • 不利于 SEO。
  • 初次首屏加载速度较慢。
  • 页面复杂度比较高。

前端路由

前端路由,指的是 URL 与内容间的映射关系
URL、内容、映射关系。

Hash 方式
  • 通过 hashchange 事件监听 hash 变化,并进行网页内容更新。
 <div>
    <a href="#/">首页</a>
    <a href="#/category">分类页</a>
    <a href="#/user">用户页</a>
  </div>
  <div id="container">
    这是首页功能
  </div>

  <script>
    window.onhashchange = function(){
    
      // 获取url的hash
      // console.log(location.hash)
      var hash = location.hash.replace('#','');
      // 根据不同hash值,更改网页内容
      var str = ''
      switch(hash) {
    
        case '/':
          str = '这是首页的功能';
          break;
        case '/category':
          str = '这是分页的功能';
          break;
        case '/user':
          str = '这是用户的功能';
          break;
      }
      document.getElementById('container').innerHTML = str;
    };


  </script>
  • 封装以备复用。
<script>
    // 准备对象,用于封装hash功能
    var router = {
    
      // 路由存储位置:保存了url与内容处理函数的对应关系。
      routes:{
    },
      // 定义路由规则的方法
      route: function(path,callback){
    
        this.routes[path] = callback;
      },
      // 初始化路由的方法
      init: function(){
    
        var that = this;
        window.onhashchange = function (){
    
          // 当hash改变,需要得到新的hash
          var hash = location.hash.replace('#','');
          // 根据hash触发routes中的对应callback
          that.routes[hash] && that.routes[hash]();
        };
      }
    };
    var container = document.getElementById('container');
    // 定义路由规则
    router.route('/',function(){
    
      container.innerHTML= '这是首页功能';
    });
    router.route('/category',function(){
    
      container.innerHTML= '这是分页功能';
    });
    router
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值