前端小食堂 | Day10 - 前端路由の時空裂隙

??? 今日穿梭指南:兩種維度の路由宇宙

1. Hash 模式:錨點の量子隧道
// 手動創建路由監聽器  
window.addEventListener('hashchange', () => {  const path = location.hash.slice(1) || '/';  console.log('進入哈希宇宙:', path);  renderComponent(path);  
});  // 編程式導航  
function navigateTo(path) {  location.hash = `#${path}`;  
}  // 初始化路由  
if (!location.hash) navigateTo('/home');  

?? 宇宙特性

  • URL 格式:http://domain.com/#/home
  • 優點
    • 兼容性強(IE8+)
    • 無需服務器配置
  • 缺點
    • URL 不夠優雅
    • 錨點功能沖突風險

2. History 模式:時空操縱術
// 監聽歷史記錄變化  
window.addEventListener('popstate', (e) => {  const path = location.pathname;  console.log('時空回退至:', path);  renderComponent(path);  
});  // 主動跳轉(不觸發頁面刷新)  
function historyPush(path) {  history.pushState({ key: Date.now() }, '', path);  renderComponent(path); // 需手動觸發渲染  
}  // 攔截鏈接點擊事件  
document.body.addEventListener('click', (e) => {  if (e.target.tagName === 'A') {  e.preventDefault();  historyPush(e.target.href);  }  
});  

?? 高階法則

  • URL 格式:http://domain.com/home
  • 必須配置服務器
    # Nginx 配置  
    location / {  try_files $uri $uri/ /index.html;  
    }  
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71731.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言學習筆記-進階(7)字符串函數3

1. strstr的使用和模擬實現 char * strstr ( const char * str1, const char * str2); Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1. (函數返回字符串str2在字符串str1中第?次出現的位置&#x…

HarmonyOS Next 屬性動畫和轉場動畫

HarmonyOS Next 屬性動畫和轉場動畫 在鴻蒙應用開發中,動畫是提升用戶體驗的關鍵要素。通過巧妙運用動畫,我們能讓應用界面更加生動、交互更加流暢,從而吸引用戶的注意力并增強其使用粘性。鴻蒙系統為開發者提供了豐富且強大的動畫開發能力&…

PHP:phpstudy無法啟動MySQL服務問題解決

文章目錄 一、問題說明二、解決問題 一、問題說明 我的Windows10系統,之前安裝過MySQL5.7的版本。 然后,用phpstudy安裝MySQL8,并啟動MySQL8。 發生無法啟動的情況。 二、解決問題 1、刪除本地MySQL7的服務 net stop MySQL //這里的服務名…

Nginx(基礎安裝+配置文件)

目錄 一.Nginx基礎 1.基礎知識點 2.異步非阻塞機制 二.Nginx安裝 2.1安裝nginx3種方式 1.包管理工具安裝(yum/apt) 2.本地包安裝(rpm/dpkg) 3.源碼編譯安裝 3.1 源碼編譯安裝nginx流程(ubuntu) 1.…

C++ Windows下屏幕截圖

屏幕截圖核心代碼(如果要求高幀率,請使用DxGI): // RGB到YUV的轉換公式 #define RGB_TO_Y(r, g, b) ((int)((0.299 * (r)) (0.587 * (g)) (0.114 * (b)))) #define RGB_TO_U(r, g, b) ((int)((-0.169 * (r)) - (0.331 * (g)) …

修改jupyter notebook的工作空間

今天,我之前R配置jupyter工作空間,講了各種語言內核分配不同的工作空間,雖然是方便管理,但有個問題就是需要每次都進入C盤的配置文件找到notebook的工作空間設置路徑打開修改嘛。 因此,今天我編寫了一個python腳本&am…

江科大51單片機筆記【9】DS1302時鐘可調時鐘(下)

在寫代碼前,記得把上一節的跳線帽給插回去,不然LCD無法顯示 一.DS1302時鐘 1.編寫DS1302.c文件 (1)重新對端口定義名字 sbit DS1302_SCLKP3^6; sbit DS1302_IOP3^4; sbit DS1302_CEP3^5;(2)初始化 因為…

電商行業門店管理軟件架構設計與數據可視化實踐

一、行業痛點與核心訴求 在電商多平臺運營成為主流的背景下,企業普遍面臨三大管理難題: ?數據碎片化:某頭部服飾品牌2023年運營報告顯示,其分布在8個平臺的162家門店,日均產生23萬條訂單數據,但財務部門需要5個工作日才能完成跨平臺利潤核算。?成本核算失真:行業調研…

創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測

創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測 目錄 創新算法!BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測預測效果基本介紹BKA-Transformer-BiLSTM黑翅鳶優化算法多變量時間序列預測一、引言1.1、研究背景和意義1.2、…

leetcode 95.不同的二叉搜索樹 Ⅱ

首先分析一下什么是二叉搜索樹。因為我本科學習數據結構的時候就是單純背了一下題庫,考試非常簡單。現在額外補充學一些之前自己沒有學過的內容。有序向量可以二分查找,列表可以快速插入和刪除。二叉搜索樹可以實現按照關鍵碼訪問。call by key .數據表現…

數據安全防線:備份文件的重要性與自動化實踐

在數字化時代,信息已成為企業運營和個人生活的核心資源。無論是企業的核心數據、客戶的敏感信息,還是個人的珍貴照片、重要文檔,這些數據一旦丟失或受損,都可能帶來不可估量的損失。因此,備份文件的重要性不言而喻&…

碰一碰發視頻系統之寫卡功能開發了,支持OEM

一、引言 在碰一碰發視頻系統中,NFC(Near Field Communication,近場通信)技術扮演著關鍵角色。其中,寫卡功能是實現用戶與系統便捷交互的重要環節,通過將特定的視頻相關信息寫入 NFC 標簽,用戶…

【數據結構初階第十八節】八大排序系列(上篇)—[詳細動態圖解+代碼解析]

看似不起眼的日復一日,總會在某一天讓你看到堅持的意義。??????云邊有個稻草人-CSDN博客 hello,好久不見! 目錄 一. 排序的概念及運用 1. 概念 2. 運用 3. 常見排序算法 二. 實現常見排序算法 1. 插入排序 (1&…

python爬蟲系列課程8:js瀏覽器window對象屬性

python爬蟲系列課程8:js瀏覽器window對象屬性 一、JavaScript的組成二、document常見屬性對象三、navigator對象一、JavaScript的組成 JavaScript可以分為三個部分:ECMAScript標準、DOM、BOM。 ECMAScript標準:即JS的基本語法,JavaScript的核心,描述了語言的基本語法和數…

快速使用PPASR V3版不能語音識別框架

前言 本文章主要介紹如何快速使用PPASR語音識別框架訓練和推理,本文將致力于最簡單的方式去介紹使用,如果使用更進階功能,還需要從源碼去看文檔。僅需三行代碼即可實現訓練和推理。 源碼地址:https://github.com/yeyupiaoling/P…

cannon g3810打印機設置

現在AI這么厲害,是不是很少人來這里搜索資料了。 不過我還是寫一下。 買了一臺cannon g3810打印機。一直都用USB打印,今天突然想用手機打印。于是又折騰了兩個小時,終于折騰完了。 步驟如下: [1]打開官網,下載佳能…

使用 Arduino 和 ThingSpeak 通過 Internet 進行心跳監測

使用 Arduino 和 ThingSpeak 通過 Internet 進行心跳監測 在這個項目中,我們將使用 Arduino 制作一個心跳檢測和監測系統,該系統將使用脈搏傳感器檢測心跳,并在與其連接的 LCD 上顯示 BPM(每分鐘心跳次數)讀數。它還將使用 Wi-Fi 模塊ESP8266將讀數發送到 ThingSpeak 服務…

vulnhub靶場之【digitalworld.local系列】的snakeoil靶機

前言 靶機:digitalworld.local-snakeoil,IP地址為192.168.10.11 攻擊:kali,IP地址為192.168.10.6 kali采用VMware虛擬機,靶機選擇使用VMware打開文件,都選擇橋接網絡 這里官方給的有兩種方式&#xff0…

自行車的主要品牌

一、國際知名品牌(專注運動與高端市場) 捷安特(GIANT) 臺灣品牌,全球最大自行車制造商之一,覆蓋山地車、公路車、通勤車等多品類。 美利達(MERIDA) 臺灣品牌,以山地車…

C語言(隊列)

1、隊列的原理和作用 1、1 隊列的原理 隊列的原理其實就像一個管道,如果我們不斷的往管道里塞乒乓球,每個乒乓球在管道里就會排列一條隊列,先進去的乒乓球會先出來,這個就是隊列先進先出的規則 球從左邊進去的動作叫入列&#xf…