不要用 AngularJS 的幾個理由。

angular-dunebook.png

我覺得我乾脆變成三分鐘熱度部落格好了(

用了 AngularJS 大概半個月了,愈來愈清楚這個東西,

說實話,這個東西真的夭壽讚,但是,果然還是有哪裡不對。

可能是我還用的不夠深,畢竟我能感受到 AngularJS 告訴我:

「要用我,就必須謹慎思考架構」的意念。

 


1.jQuery 會半殘廢,你需要想更多。

2015-11-23 18-00-47 的螢幕擷圖

當你開始用 AngularJS 之後,jQuery 會開始成為輔助 AngularJS 的工具,

這裡就是問題了,當你開始不再用元素不放文字(例如 <span>)而是標籤({{ Text }})

的時候,你就沒有辦法用 jQuery 去指定這一段文字,有的人可能會想說用這種方法:

<span class="js-text-{{ Item.ID }}">{{ Item.text }}</span>

是可以,但是別忘記 AngularJS 是雙向綁定,你更改了這段文字,

下次資料更新的時候又會回來

 


2.什麼都要 XHR

2015-11-23 18-02-42 的螢幕擷圖

假設你在做購物車數量,PHP 可以很簡單的直接在輸出網頁時,

把數量也直接一起輸出來,然後透過 jQuery 去做更改數量的動作。

而用了 AngularJS,你必須額外去撈購物車數量,什麼意思?

就用短短的流程告訴你:

PHP: 取得網頁(包含購物車數量)

AngularJS: 取得網頁(不包含購物車數量) -> 取得購物車數量 -> 顯示在網頁上

畢竟 AngularJS 希望你讀取網頁不應該包含資料,而是只有網頁架構

 


3.你的資料會慢一點才蹦出來

2015-11-23 18-09-34 的螢幕擷圖

所以剛才第2點提到了你應該只讀取網頁架構,那你應該知道一個網頁載入

至少會需要兩個請求:網頁架構、網頁資料

一旦你網頁架構讀取完了之後,就會直接出現再客戶端的螢幕上,

但是這個時候客戶端還沒讀取完「資料」,

所以出現在他螢幕上的就必須是「讀取動畫」

 


4.管理員跟一般使用者模板分開放的問題

2015-11-16 23-49-38 的螢幕擷圖

這點不曉得能不能怪 AngularJS,但是,你看人家 SoraMarket,

因為 AgularJS 要讀取模板,所以 SoraMarket 將一般使用者跟管理員的模板都放在一起

而不是選擇分開,我想,如果要分開的話,應該就後端要寫些有的沒的吧?

那如果要再寫些有的沒的,為什麼不直接用後端模板引擎呢 ..

 


5.濫用會洩漏商業邏輯(或機密?)

2015-11-16 22-52-28 的螢幕擷圖

說真的 AngularJS 讓我覺得很好用的地方這裡也許是一點,

我可以直接從資料庫輸出資料到前端,然後都不用做任何變動,

意思是我資料庫欄位叫作 name,我就可以直接 {{ name }} 顯示在網頁上,

讚啦,這樣就可以直接取得一整個資料庫的欄位名稱啦(?)

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s