国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端路由之 Hash 路由原生實現

mcterry / 1673人閱讀

摘要:路由的實現使用過框架路由的人肯定都有注意到中的號,為什么路由頁面不會跳轉還記得鏈接的錨點是怎么實現的嗎。

Hash 路由的實現 使用過框架路由的人肯定都有注意到url中的#號,為什么hash路由頁面不會跳轉——還記得a鏈接的錨點是怎么實現的嗎。

多個路由集中處理

匹配對應路由

利用回調處理相應的邏輯

代碼(詳細的注釋)
  
  

頭部

function Router() { // 路由儲存 this.routes = {}; // 當前路由 this.currentUrl = ""; } Router.prototype = { // 路由處理 route: function (path, callback) { this.routes[path] = callback || function(){}; }, // 頁面刷新 refresh: function () { // 當前的hash值 this.currentUrl = location.hash.slice(1) || "/"; // 執行hash值改變后相對應的回調函數 this.routes[this.currentUrl](); }, // 頁面初始化 init: function () { // 頁面加載事件 window.addEventListener("load", this.refresh.bind(this), false); // hash 值改變事件 window.addEventListener("hashchange", this.refresh.bind(this), false); } } // 全局掛載 window.Router = new Router(); // 初始化 window.Router.init(); let obj = document.querySelector(".result"); function changeConent (cnt) { obj.innerHTML = cnt } // 匹配路由做相應的操作 Router.route("/", () => { changeConent("當前是首頁"); }) Router.route("/item", () => { changeConent("當前是item頁面"); }) Router.route("/list", () => { // ajax 的數據就可以這樣去拼接 setTimeout(() => { obj.innerHTML = "

Hello World

" }, 1000) })

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83475.html

相關文章

  • 原生 js 實現一個前端路由 router

    摘要:實現原理現在前端的路由實現一般有兩種,一種是路由,另外一種是路由。現在的前端主流框架的路由實現方式都會采用路由,本項目采用的也是。當值發生改變的時候,我們可以通過事件監聽到,從而在回調函數里面觸發某些方法。 效果圖: showImg(https://segmentfault.com/img/remote/1460000018058419?w=422&h=744); 項目地址:https...

    gggggggbong 評論0 收藏0
  • JS原生一步步實現前端路由和單頁面應用

    摘要:這里借鑒了一下的處理方式,我們把單獨模塊的包裝成一個函數,提供一個全局的回調方法,加載完成時候再調用回調函數。 前端路由實現之 #hash 先上github項目地址: spa-routers運行效果圖showImg(https://segmentfault.com/img/bVFi7l?w=581&h=312); 背景介紹 用了許多前端框架來做spa應用,比如說backbone,ang...

    idealcn 評論0 收藏0
  • 前端路由原理解析和實現

    摘要:如何實現前端路由要實現前端路由,需要解決兩個核心如何改變卻不引起頁面刷新如何檢測變化了下面分別使用和兩種實現方式回答上面的兩個核心問題。 原文鏈接:github.com/whinc/blog/… 在單頁應用如此流行的今天,曾經令人驚嘆的前端路由已經成為各大框架的基礎標配,每個框架都提供了強大的路由功能,導致路由實現變的復雜。想要搞懂路由內部實現還是有些困難的,但是如果只想了解路由實現基本...

    lavor 評論0 收藏0
  • 國內存在感最低的前端API——瀏覽器路由

    摘要:最新一直在看關于和路由這塊的知識,最終發現這些路由框架的模塊功能的實現都是基于瀏覽器原生路由的。在瀏覽器中實現前端路由主要有兩種方式一個是我們常用的,另一個是提供的。該對象的和分別表示的各個部分,它們因此被稱為分解屬性。 最新一直在看關于 Vue 和 React 路由這塊的知識,最終發現這些路由框架的模塊功能的實現都是基于瀏覽器原生路由 API?的。本著追根溯源的初心,于是就想著將瀏覽...

    U2FsdGVkX1x 評論0 收藏0

發表評論

0條評論

mcterry

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<