摘要:中的充當路由的作用,控制的走向,當在中使用標簽時生效。任一形式匹配的結(jié)果會以參數(shù)的形式傳遞到相關(guān)的函數(shù)中,第一種規(guī)則可能返回一個或多個參數(shù),第二種規(guī)則將整個匹配結(jié)果作為一個參數(shù)返回。
Backbone 中的 Router 充當路由的作用,控制 URL 的走向,當在 URL 中使用 # 標簽時生效。
定義 Router 至少需要一個 Router 和一個函數(shù)來映射特定的 URL,而且我們需要記住,在 Backbone 中,# 標簽后的任意字符都會被 Router 接收并解釋。
下面我們來定義一個 Router:
現(xiàn)在,我們就定義好了一個 Router 了,但此時 Router 并未匹配特定的 URL,接下來我們開始詳細講解 Router 是如何工作的。
動態(tài)路由選擇Backbone 允許你定義帶有特定參數(shù)的 Router。例如,你可能希望通過一個特定的 id 接收一個 post,比如這樣一個 URL:"http://example.com/#/posts/12",一旦這個 Router 被激活,你就可以取得一個 id 為12的 post。接下來,我們就來定義這個 Router:
匹配規(guī)則
Backbone 使用兩種形式的變量來設置 Router 的匹配規(guī)則。第一種是 :,它可以匹配 URL 中斜杠之間的任意參數(shù),另一種是 *,它用來匹配斜杠后面的所有部分。注意,由于第二種形式的模糊性大于第一種,所以它的匹配優(yōu)先級最低。
任一形式匹配的結(jié)果會以參數(shù)的形式傳遞到相關(guān)的函數(shù)中,第一種規(guī)則可能返回一個或多個參數(shù),第二種規(guī)則將整個匹配結(jié)果作為一個參數(shù)返回。
接下來,我們用實例來說明:
routes:{ "posts/:id": "getPost", // Example "download/*path": "downloadFile", // Download ":route/:action": "loadView", // Load Route/Action View }, app_router.on("route:getPost", function( id ){ alert(id); // 匹配后,傳遞過來的參數(shù)為 12 }); app_router.on("route:downloadFile", function( path ){ alert(path); // 匹配后,整個匹配結(jié)果作為一個參數(shù)返回,路徑為 user/images/hey.gif }); app_router.on("route:loadView", function( route, action ){ alert(route + "_" + action); // 匹配后,傳遞過來兩個參數(shù),此時會彈出 dashboard_graph });參考
http://backbonetutorials.com/what-is-a-router/#/posts/120
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/92317.html
摘要:事件關(guān)于路由觸發(fā)事件是通過兩個函數(shù)來完成的,它們分別是和前者會檢測路由是否發(fā)生了改變,如果改變了就會觸發(fā)函數(shù)并調(diào)用函數(shù),而后者會通過路由片段來找到相關(guān)的事件函數(shù)來觸發(fā)。 注意:強烈建議一邊閱讀源碼一邊閱讀本文。 終于到了backbone源碼解讀的最后一篇,這一篇和前面幾篇時間上有一定的間隔(因為要回學校有一堆亂七八糟的事...)。在這一篇里面會講解Bakcbone的sync & rou...
摘要:應用的功能這個應用是一個個人簡歷生成器。比較好的教程有這一個。這樣的命名污染問題自然顯而易見。而且發(fā)出多次請求也會影響性能。明顯不利于維護。然而我希望能夠不發(fā)生變化,因為是在文件的前提下的標簽頁,不能換一個標簽就重建一個。 為什么學習backbone?這是個好問題。在這個前端框架爆炸的年代,比起backbone,對開發(fā)來說有更多更好的選擇,react,vue,angular等等。但這些...
1. 開場 1.1 MVC? MVC是一種GUI軟件的一種架構(gòu)模式。它的目的是將軟件的數(shù)據(jù)層(Model)和視圖(view)分開。Model連接數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)的交互。用戶不能直接和數(shù)據(jù)打交道,而是需要通過操作視圖,然后通過controller對事件作出響應,最后才得以改變數(shù)據(jù)。最后數(shù)據(jù)改變,通過觀察者模式更新view。(所以在這里需要用到設計模式中的觀察者模式) 1.2 Smalltalk-80...
摘要:個人認為,讀懂老牌框架的源代碼比會用流行框架的要有用的多。另外,源代碼中所有的以開頭的方法,可以認為是私有方法,是沒有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時候接觸到的第一個框架,當初被backbone的強大功能所吸引(當然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設計模式的靈活運用,以及令...
摘要:個人認為,讀懂老牌框架的源代碼比會用流行框架的要有用的多。另外,源代碼中所有的以開頭的方法,可以認為是私有方法,是沒有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時候接觸到的第一個框架,當初被backbone的強大功能所吸引(當然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設計模式的靈活運用,以及令...
閱讀 4221·2021-09-26 10:17
閱讀 871·2021-09-22 15:02
閱讀 3446·2021-09-06 15:00
閱讀 1056·2021-07-25 16:52
閱讀 2734·2019-08-29 16:16
閱讀 2515·2019-08-29 13:25
閱讀 1588·2019-08-26 13:51
閱讀 2182·2019-08-26 10:58