自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用JS模板引擎、面向對象以及示例代碼

移動開發(fā)
頁面邏輯一旦復雜,比如需要有if判斷或者多層循環(huán)時,這種連接字符串的方式就相形見絀了,而這也就催生出了JS模板引擎。通過上面這些工具的組合,我們有了模塊的概念,有了模板引擎,有數(shù)據(jù)的加載。最終還是要通過javascript將這一切組織在一起并加入應用所需要的邏輯。為了能最大限度的復用代碼,用面向對象的方式去組織內(nèi)容是比較好的選擇。

數(shù)據(jù)載入后,最終都會以某種形式顯示在頁面上。簡單情況,我們可能會這樣做:

  1. $('body').append('<div>' + data.name + '</div>'); 

如果頁面邏輯一旦復雜,比如需要有if判斷或者多層循環(huán)時,這種連接字符串的方式就相形見絀了,而這也就催生出了JS模板引擎。

主流的JS模板引擎有underscore.jsJade,EJS等等,可以橫向對比一下這些JS模板引擎的優(yōu)缺點。

對于相對簡單的頁面邏輯(只需要支持if和for/each)來說,我更傾向選用輕巧的underscore.js或者JavaScript Templates。

在當前例子中,使用underscore.js生成列表就非常簡單了,頁面模板為:

  1. <ul data-role="listview" data-inset="true"> 
  2. <script id="tmpl-restaurants" type="text/template"> 
  3.     <% _.each(data, function(restaurant) { %> 
  4.         <li> 
  5.             <a href="#" data-rel="back" data-value="<%- restaurant.name%>"><%- restaurant.name%></a> 
  6.         </li> 
  7.     <% }); %> 
  8. </script> 
  9. </ul> 

調(diào)用引擎:

  1. $("#tmpl-restaurants").replaceWith( 
  2.     _.template($("#tmpl-restaurants").html(), { 
  3.         data : restaurants 
  4.     }) 
  5. ); 

面向對象與模塊化

通過上面這些工具的組合,我們有了模塊的概念,有了模板引擎,有數(shù)據(jù)的加載。最終還是要通過javascript將這一切組織在一起并加入應用所需要的邏輯。為了能***限度的復用代碼,用面向對象的方式去組織內(nèi)容是比較好的選擇。

JavaScript雖然原生并不支持面向對象,但是依然可以通過很多方式模擬出面向對象的特性。例子中采用了我個人比較喜歡的一種方式是:

  1. var foodOrder = function(ui, options){ 
  2.     //構造函數(shù) 
  3.     this.init(ui, options); 
  4. foodOrder.prototype = { 
  5.    defaultUI :  { 
  6.        form : '#form-order' 
  7.    } 
  8.    , defaultOptions : { 
  9.        debug : false 
  10.    } 
  11.    , init : function(ui, options){ 
  12.        this.ui = $.extend({}, this.defaultUI, ui); 
  13.        this.options = $.extend({}, this.defaultOptions, options); 
  14.    } 
  15. var order = new foodOrder({ 
  16.     form : '#real-form' 
  17. }, { 
  18.     debug : true 
  19. }); 

將頁面的UI元素以及配置項目抽象出來,在實際構造對象時則可以通過入口參數(shù)復寫,可以分離整個項目的邏輯與UI,使處理的方式更加靈活。

Web App***實踐示例代碼

依據(jù)此Web App開發(fā)***實踐所開發(fā)的App,基于HTML5 Boilerplate、requireJS、jQuery Mobile、Underscore.js,后端邏輯用jStorage模擬實現(xiàn)。完成后的成品在此。所有代碼可以在github查看。希望大家也能夠按照本系列教程開發(fā)出好用的Web App。

責任編輯:徐川 來源: avnpc.com
相關推薦

2014-04-30 12:04:43

Velocity.js模板引擎

2019-11-18 17:05:02

JavaScript面向對象程序編程Java

2017-01-04 15:22:57

TrimPath模板引擎

2016-10-11 15:42:08

2021-11-08 07:48:48

Go語言對象

2023-01-10 09:38:09

面向對象系統(tǒng)

2023-11-10 09:16:45

SpringBootThymeleaf

2010-03-18 13:43:40

python面向對象

2009-06-15 14:59:31

Java代碼Java

2021-02-03 09:36:36

Python

2009-01-04 09:08:30

面向對象繼承接口

2013-03-11 09:23:22

Go語言面向對象

2009-10-09 10:52:43

ASP.NET模板引擎

2016-11-01 20:26:47

前端模板underscoreWeb

2009-11-13 14:22:11

ADO.NET Dat

2024-02-29 08:02:00

2022-07-30 23:41:53

面向過程面向對象面向協(xié)議編程

2022-08-16 07:57:30

架構

2017-03-10 18:29:17

Androidfreemarker應用

2020-06-02 14:00:53

Vue.js組件Web開發(fā)
點贊
收藏

51CTO技術棧公眾號