Angularjs書寫規范


文件命名原則:

  1. 遵循以描述組件功能,然后是類型(可選)的方式來給所有的組件提供統一的命名
    • 命名:feature.type.js。
    • 測試文件名(feature.type.spec.js)
  2. 大多數文件都有2個名字:
    • 文件名 (avengers.controller.js)
    • 帶有Angular的注冊組件名 (AvengersController)
    • 測試文件名(avengers.controller.spec.js)

規則

  1. 一個文件只定義一個組件

  2. 每一個文件都需要使用JavaScript閉包

  3. 使用module的時候,避免直接用一個變量,而是使用getter的鏈式語法。

    • 設置module,angular.module('app', []);
    • 獲取module,angular.module('app');
  4. 回調函數使用命名函數,不要用匿名函數

     // logger.js
     angular
         .module('app')
         .factory('logger', logger);
     
     function logger () { }
    
  5. 在controller中需要先把$scope復制給可捕獲的變量,選擇一個有代表性的名稱,例如vm代表ViewModel(方便controller as 語法糖之間的切換)

     function Customer ($scope) {
         var vm = $scope;
         vm.name = {};
         vm.sendMessage = function() { };
     }
    
  6. 可綁定成員放到頂部(注:如果一個函數就是一行,那么只要不影響可讀性就把它放到頂部。)

     function Sessions() {
         var vm = this;
     
         vm.gotoSession = gotoSession;
         vm.refresh = refresh;
         vm.search = search;
         vm.sessions = [];
         vm.title = 'Sessions';
     
         ////////////
     
         function gotoSession() {
           /* */
         }
     
         function refresh() {
           /* */
         }
     
         function search() {
           /* */
         }
     }
    
  7. 保持Controller的專一性,一個view定義一個controller,盡量不要在其它view中使用這個controller。把可重用的邏輯放到factory中,保證controller只服務於當前視圖

  8. 獨立的數據調用(Data Services):

    • 把進行數據操作和數據交互的邏輯放到factory中,數據服務負責XHR請求、本地存儲、內存存儲和其它任何數據操作
    • 數據服務被調用時(例如controller),隱藏調用的直接行為
    • 數據調用返回一個Promise
  9. Directives

    • 一個dirctive一個文件
    • 提供一個唯一的Directive前綴,格式:{namespace}-指令名稱
  10. 壓縮處理(防止壓縮導致出錯):

    • 手動添加依賴

        angular
            .module('app')
            .controller('Dashboard', Dashboard);
        
        Dashboard.$inject = ['$location', '$routeParams', 'common', 'dataservice'];
        
        function Dashboard($location, $routeParams, common, dataservice) {
        }
      
  11. Controller命名: 使用UpperCamelCase(每個單詞首字母大寫)的方式;后綴使用Controller;例如:AvengersController

  12. Service命名: 對service和factory使用camel-casing(駝峰式,第一個單詞首字母小寫,后面單詞首字母大寫)方式。避免使用$前綴。

  13. Directive組件命名: 使用camel-case方式,用一個短的前綴來描述directive在哪個區域使用(一些例子中是使用公司前綴或是項目前綴)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM