成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

認(rèn)識(shí) Backbone(三) : 什么是 Router

ShowerSun / 486人閱讀

摘要:中的充當(dāng)路由的作用,控制的走向,當(dāng)在中使用標(biāo)簽時(shí)生效。任一形式匹配的結(jié)果會(huì)以參數(shù)的形式傳遞到相關(guān)的函數(shù)中,第一種規(guī)則可能返回一個(gè)或多個(gè)參數(shù),第二種規(guī)則將整個(gè)匹配結(jié)果作為一個(gè)參數(shù)返回。

Backbone 中的 Router 充當(dāng)路由的作用,控制 URL 的走向,當(dāng)在 URL 中使用 # 標(biāo)簽時(shí)生效。
定義 Router 至少需要一個(gè) Router 和一個(gè)函數(shù)來(lái)映射特定的 URL,而且我們需要記住,在 Backbone 中,# 標(biāo)簽后的任意字符都會(huì)被 Router 接收并解釋。
下面我們來(lái)定義一個(gè) Router



現(xiàn)在,我們就定義好了一個(gè) Router 了,但此時(shí) Router 并未匹配特定的 URL,接下來(lái)我們開(kāi)始詳細(xì)講解 Router 是如何工作的。

動(dòng)態(tài)路由選擇

Backbone 允許你定義帶有特定參數(shù)的 Router。例如,你可能希望通過(guò)一個(gè)特定的 id 接收一個(gè) post,比如這樣一個(gè) URL:"http://example.com/#/posts/12",一旦這個(gè) Router 被激活,你就可以取得一個(gè) id 為12的 post。接下來(lái),我們就來(lái)定義這個(gè) Router:



匹配規(guī)則

Backbone 使用兩種形式的變量來(lái)設(shè)置 Router 的匹配規(guī)則。第一種是 :,它可以匹配 URL 中斜杠之間的任意參數(shù),另一種是 *,它用來(lái)匹配斜杠后面的所有部分。注意,由于第二種形式的模糊性大于第一種,所以它的匹配優(yōu)先級(jí)最低。
任一形式匹配的結(jié)果會(huì)以參數(shù)的形式傳遞到相關(guān)的函數(shù)中,第一種規(guī)則可能返回一個(gè)或多個(gè)參數(shù),第二種規(guī)則將整個(gè)匹配結(jié)果作為一個(gè)參數(shù)返回。
接下來(lái),我們用實(shí)例來(lái)說(shuō)明:

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); // 匹配后,傳遞過(guò)來(lái)的參數(shù)為 12
});
app_router.on("route:downloadFile", function( path ){ 
    alert(path); // 匹配后,整個(gè)匹配結(jié)果作為一個(gè)參數(shù)返回,路徑為 user/images/hey.gif 
});
app_router.on("route:loadView", function( route, action ){ 
    alert(route + "_" + action); // 匹配后,傳遞過(guò)來(lái)兩個(gè)參數(shù),此時(shí)會(huì)彈出 dashboard_graph 
});
參考

http://backbonetutorials.com/what-is-a-router/#/posts/120

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/92317.html

相關(guān)文章

  • Backbone源碼解讀(

    摘要:事件關(guān)于路由觸發(fā)事件是通過(guò)兩個(gè)函數(shù)來(lái)完成的,它們分別是和前者會(huì)檢測(cè)路由是否發(fā)生了改變,如果改變了就會(huì)觸發(fā)函數(shù)并調(diào)用函數(shù),而后者會(huì)通過(guò)路由片段來(lái)找到相關(guān)的事件函數(shù)來(lái)觸發(fā)。 注意:強(qiáng)烈建議一邊閱讀源碼一邊閱讀本文。 終于到了backbone源碼解讀的最后一篇,這一篇和前面幾篇時(shí)間上有一定的間隔(因?yàn)橐貙W(xué)校有一堆亂七八糟的事...)。在這一篇里面會(huì)講解Bakcbone的sync & rou...

    feng409 評(píng)論0 收藏0
  • 基于 Backbone + node 的個(gè)人簡(jiǎn)歷生成器(個(gè)人學(xué)習(xí)總結(jié))

    摘要:應(yīng)用的功能這個(gè)應(yīng)用是一個(gè)個(gè)人簡(jiǎn)歷生成器。比較好的教程有這一個(gè)。這樣的命名污染問(wèn)題自然顯而易見(jiàn)。而且發(fā)出多次請(qǐng)求也會(huì)影響性能。明顯不利于維護(hù)。然而我希望能夠不發(fā)生變化,因?yàn)槭窃谖募那疤嵯碌臉?biāo)簽頁(yè),不能換一個(gè)標(biāo)簽就重建一個(gè)。 為什么學(xué)習(xí)backbone?這是個(gè)好問(wèn)題。在這個(gè)前端框架爆炸的年代,比起backbone,對(duì)開(kāi)發(fā)來(lái)說(shuō)有更多更好的選擇,react,vue,angular等等。但這些...

    lansheng228 評(píng)論0 收藏0
  • Backbone 源碼解讀(一)

    1. 開(kāi)場(chǎng) 1.1 MVC? MVC是一種GUI軟件的一種架構(gòu)模式。它的目的是將軟件的數(shù)據(jù)層(Model)和視圖(view)分開(kāi)。Model連接數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的交互。用戶不能直接和數(shù)據(jù)打交道,而是需要通過(guò)操作視圖,然后通過(guò)controller對(duì)事件作出響應(yīng),最后才得以改變數(shù)據(jù)。最后數(shù)據(jù)改變,通過(guò)觀察者模式更新view。(所以在這里需要用到設(shè)計(jì)模式中的觀察者模式) 1.2 Smalltalk-80...

    Kosmos 評(píng)論0 收藏0
  • backbone源碼解讀

    摘要:個(gè)人認(rèn)為,讀懂老牌框架的源代碼比會(huì)用流行框架的要有用的多。另外,源代碼中所有的以開(kāi)頭的方法,可以認(rèn)為是私有方法,是沒(méi)有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時(shí)候接觸到的第一個(gè)框架,當(dāng)初被backbone的強(qiáng)大功能所吸引(當(dāng)然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設(shè)計(jì)模式的靈活運(yùn)用,以及令...

    Kross 評(píng)論0 收藏0
  • backbone源碼解讀

    摘要:個(gè)人認(rèn)為,讀懂老牌框架的源代碼比會(huì)用流行框架的要有用的多。另外,源代碼中所有的以開(kāi)頭的方法,可以認(rèn)為是私有方法,是沒(méi)有必要直接使用的,也不建議用戶覆蓋。 寫在前面 backbone是我兩年多前入門前端的時(shí)候接觸到的第一個(gè)框架,當(dāng)初被backbone的強(qiáng)大功能所吸引(當(dāng)然的確比裸寫js要好得多),雖然現(xiàn)在backbone并不算最主流的前端框架了,但是,它里面大量設(shè)計(jì)模式的靈活運(yùn)用,以及令...

    wangxinarhat 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<