摘要:現(xiàn)在微軟終于痛定思痛決定放棄了不支持的安全更新,對我們前端來說,真的是重大利好啊言歸正傳,這篇文章的目的就是把怎么用構(gòu)建一個單頁面程序介紹以下,是對自己的一個總結(jié),也喜歡對大家有一定的借鑒作用,寫的不好不對的地方希望大家多評論評論謝謝。
這篇文章是寫在公司項目結(jié)束之后的,因為我個人不太會把沒有實踐過的東西寫出來,實踐是檢驗真理的唯一標(biāo)準(zhǔn)么,用的怎么樣,好不好用,在成熟實踐過的項目上能體現(xiàn)出來。
我們公司一開始技術(shù)選型的時候是考慮用angularjs的,但是公司高層為了市場容量 說最好需要支持下 ie , 然而angularjs 對ie8的支持都不是很好,所以最后使用了能夠兼容所有瀏覽器的avalon, 正如司徒大大自己說的,國內(nèi)的環(huán)境就是這樣,ie 還是有大量的市場份額的。 (現(xiàn)在微軟終于痛定思痛 決定放棄了ie , 不支持ie的安全更新,對我們前端來說,真的是重大利好?。?/p>
言歸正傳,這篇文章的目的就是把怎么用 avalon 構(gòu)建一個單頁面程序 介紹以下, 是對自己的一個總結(jié),也喜歡對大家有一定的借鑒作用,寫的不好不對的地方希望大家多評論評論, 謝謝。
建立項目結(jié)構(gòu)這個我參考了司徒正美寫的結(jié)構(gòu)目錄。 js 文件夾是放置所有的js 引用類庫的,無論是其他類庫還是自己公司寫的類庫也好,我把自己寫的類庫放在了 js/common文件夾下面; modules 是放置不同的業(yè)務(wù)模塊的,如圖,我建立了一個 sub1業(yè)務(wù),還有一個 sub2業(yè)務(wù), 后面我們就根據(jù)這兩個子業(yè)務(wù)來進(jìn)行開發(fā)講解; 其它css,fonts,images 目錄就不用講大家也都知道了;然后main.js為入口文件,與index.html 主頁面放在根目錄下面
編寫index主頁主頁很簡單,新建一個常規(guī)html頁面,引用require.js, 定義入口main.js位置。其中ms-controller="root"就是avalon的一個controller, 一個model 對應(yīng)一個controller , 規(guī)定一個作用域,這個跟angularjs差不多,也有mvc的思想. 一個頁面可以定義多個controller
下面我們再來看看main.js文件avalon工程 {{name}}
第一塊內(nèi)容配置了requirejs ,配置了avalon的引用位置
第二塊內(nèi)容通過require引入avalon
requirejs的學(xué)習(xí)請參考官網(wǎng) http://requirejs.org/
然后定義了一個 avalon的model, 這個其實就是一個對象,里面可以封裝html controller中需要用到的數(shù)據(jù)和方法, 默認(rèn)$id屬性是必須要的,這個id 會找到html頁面的對應(yīng)的controller, 如前面我們定義的controller叫 root. 最后又添加了一個屬性name, html頁面對應(yīng) {{name}}
require.config({//第一塊,配置 baseUrl: "", paths: { avalon: ["js/avalon/avalon"]//必須修改源碼,禁用自帶加載器,或直接刪提AMD加載器模塊 } }); require(["avalon"],function(avalon){ avalon.log("引入avalon"); var model = avalon.define({ $id: "root", name: "tangolivesky" }) });執(zhí)行結(jié)果如下
這就是一個經(jīng)典的MVVM
這一小節(jié)簡單介紹下avalon 單頁面程序的工程構(gòu)建,下一節(jié)詳細(xì)介紹下按需加載和路由系統(tǒng)文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78532.html
摘要:的成功離開不這三個東西,分層架構(gòu),路由系統(tǒng),儲存系統(tǒng)。分層架構(gòu)是我們組織復(fù)雜代碼的關(guān)鍵,路由系統(tǒng)是將多個頁面壓縮在一個頁面的關(guān)鍵。在這個種子工程中,我都調(diào)用了同一個方法,就比較適合目錄動態(tài)生成,需要按需調(diào)用不同的頁面的情況。 SPA的成功離開不這三個東西,分層架構(gòu),路由系統(tǒng),儲存系統(tǒng)。分層架構(gòu)是我們組織復(fù)雜代碼的關(guān)鍵,路由系統(tǒng)是將多個頁面壓縮在一個頁面的關(guān)鍵。 其中avalon路由用到...
摘要:最近因項目進(jìn)展需求對現(xiàn)有項目進(jìn)行重構(gòu),由于目前項目還未實現(xiàn)真正意義上的前后端分離后續(xù)會循序重構(gòu)實現(xiàn),在時間緊產(chǎn)品循序迭代的情況下,想一次性實現(xiàn)前后端分離精力實在有限主要是前端開發(fā)人力不足。 最近因項目進(jìn)展需求對現(xiàn)有項目進(jìn)行重構(gòu),由于目前項目還未實現(xiàn)真正意義上的前后端分離(后續(xù)會循序重構(gòu)實現(xiàn)),在時間緊產(chǎn)品循序迭代的情況下,想一次性實現(xiàn)前后端分離精力實在有限(主要是前端開發(fā)人力不足)。所...
摘要:相關(guān)組件版本最近,在公司的項目中,要開發(fā)一個使用瀑布流的前臺,衡量了各種解決方案后,還是覺得最成熟,所以就選用了它。測試的結(jié)果很令人沮喪,依然沒有控制節(jié)點的位置,所以應(yīng)該不是這個問題。 相關(guān)組件版本:avalon 1.3.6、masonry 3.1.5 最近,在公司的項目中,要開發(fā)一個使用瀑布流的前臺,衡量了各種解決方案后,還是覺得masonry最成熟,所以就選用了它。而在之前開發(fā)后臺...
摘要:正式版正式版,簡單方便的構(gòu)建單頁和多頁用用。下一步是完善單元測試,代碼覆蓋率報告如果大家有更好的想法及建議請?zhí)帷i_啟測試并生成覆蓋率報告。頁面的其他資源文件,通過引入單元測試日后調(diào)整,待開發(fā)樣式使用可添加替換預(yù)處理。 webpack2正式版 webpack2正式版,簡單方便的構(gòu)建單頁和多頁用用。(啟用tree-shaking新技術(shù))地址:avalon-webpack-start 這個啟...
摘要:啟動新技術(shù)提供測試框架進(jìn)行單元測試,代碼覆蓋率報告,可與和快速對接。關(guān)于的模塊化,預(yù)處理器的編譯。頁面的其他資源文件,通過引入單元測試日后調(diào)整,待開發(fā)使用手冊流程基本位于創(chuàng)建視圖更多說明主動引入的默認(rèn)地址為位于配置相關(guān)的和文件。 webpack2-Scaffolding showImg(https://segmentfault.com/img/remote/14600000082840...
閱讀 2472·2021-11-24 09:39
閱讀 3518·2019-08-30 15:53
閱讀 594·2019-08-29 15:15
閱讀 2903·2019-08-26 13:23
閱讀 3212·2019-08-26 10:48
閱讀 643·2019-08-26 10:31
閱讀 748·2019-08-26 10:30
閱讀 2359·2019-08-23 18:32