• 前端路由


    1、前端路由 : 路由是根据不同的 url 地址展示不同的内容或页面。

      参考:https://blog.csdn.net/u014168594/article/details/79181828  或  https://www.cnblogs.com/yuqing6/p/6731980.html

      注意:url前面是一样,是同一个html文件,只是后面的值不同(如果是用Hash + Ajax 实现的,后面的值一定有 # ;如果是使用H5的API具体自己设置)。

    2、前端一般是用在单页应用中的,单页应用不一定整个应用都是单页应用。往往是多页应用中,某些页面使用单页应用实现会比较好。

      比如:一个网站中(多个html),某一个html中需要滚动翻页的效果。那这个html页面可以做成单页应用。

      参考:http://webank.com/ 网站 中的 “关于我们”  和 “公告新闻” 页面都是单页应用,其它的页面并不是单页应用。

      注:url 改变的话,浏览器的前进后退功能就可以有效。即浏览器会把不同的url访问作为一个历史记录,保存在当前 浏览器页面进程中

      问题:那么 路由和单纯的hash(a标签就可以实现)实现的页面的改变有什么区别呢?

      区别主要在于使用路由,单页应用页面的跳转体验更像不同页面在跳转;而单纯的hash改变页面展示,只是展示页面的不同位置,通过滚动就可以看到哪个地方是视图。

    3、原生JS实现一个简单的前端路由(原理)  :   https://www.cnblogs.com/exhuasted/p/6839515.html

    function Router() {
        this.routes = {};
        this.currentUrl = '';
    }
    Router.prototype.route = function(path, callback) {
        this.routes[path] = callback || function(){};
    };
    Router.prototype.refresh = function() {
        this.currentUrl = location.hash.slice(1) || '/';
        this.routes[this.currentUrl]();
    };
    Router.prototype.init = function() {
        window.addEventListener('load', this.refresh.bind(this), false);
        window.addEventListener('hashchange', this.refresh.bind(this), false);
    }
    window.Router = new Router();
    window.Router.init();
    
    
    var content = document.querySelector('body');
    // change Page anything
    function changeBgColor(color) {
        content.style.backgroundColor = color;
    }
    Router.route('/', function() {
        changeBgColor('white');
    });
    Router.route('/blue', function() {
        changeBgColor('blue');
    });
    Router.route('/green', function() {
        changeBgColor('green');
    });
    View Code
  • 相关阅读:
    将Jquery序列化后的表单值转换成Json
    sql 2008 修改链接服务器 Rpc &Rpc Out
    JavaScript中双等的使用情况
    从一张搞笑图看JavaScript的语法和特性
    dom元素的增删查改
    前端解决跨域问题(转)
    盒子模型以及css3指定盒子模型种类的box-sizing
    如何居中浮动元素
    CSS水平垂直居中常见方法总结(转)
    JS基础-连续赋值(转)
  • 原文地址:https://www.cnblogs.com/wfblog/p/9364655.html
Copyright © 2020-2023  润新知