国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

webpack+es6+angular1.x項(xiàng)目構(gòu)建

KoreyLee / 388人閱讀

摘要:技術(shù)棧概述大名,顧名思義是在年月正式發(fā)布的一套標(biāo)準(zhǔn)。小名,意為第六次變更。本項(xiàng)目,選擇的是的推薦配置,唯一注意的是全局變量中把的關(guān)鍵詞加上。項(xiàng)目結(jié)構(gòu)公共組件目錄,放一些二次封裝的等等片段式的。項(xiàng)目的公用樣式目錄。

技術(shù)棧概述 ES2015(ES6)

大名ES2015,顧名思義是 ECMAScript 在2015年6月正式發(fā)布的一套標(biāo)準(zhǔn)。小名ES6,意為ECMAScript第六次變更。(JavaScript 是 ECMAScript 規(guī)范的一種實(shí)現(xiàn))。如今已慢慢替代ES5,成為JS主流的開發(fā)規(guī)范,新增很多語(yǔ)法糖,大大提高開發(fā)效率。

webpack


一款模塊化的構(gòu)建工具,對(duì)ES6的構(gòu)建更加友好,不詳細(xì)介紹了。

angular

一款MV*框架,本次用的是angular的1.6.4版本,即angular1.x版本中的最高版,也可以看作是2的過渡版吧。

eslint

ESLint是一個(gè)QA工具,用來避免低級(jí)錯(cuò)誤和統(tǒng)一代碼的風(fēng)格。尤其是多人開發(fā)的情境下,規(guī)范代碼,統(tǒng)一風(fēng)格是非常重要的。即便每個(gè)人負(fù)責(zé)自己的模塊,在實(shí)際執(zhí)行的時(shí)候也難免有交集。eslint簡(jiǎn)單的講,就是讓自己少犯錯(cuò),也讓隊(duì)友更容易的看懂你的代碼。

本項(xiàng)目,選擇的是ESlint的推薦配置,唯一注意的是全局變量中把a(bǔ)ngular的關(guān)鍵詞加上。因?yàn)橛玫搅薳s7的async等東西,除了webpack里babel的配置要到位,eslint里面也要配置相關(guān)解析,即:

module.exports = {
  "env": {
    "browser": true,
    "commonjs": true,
    "es6": true
  },
  "extends": "eslint:recommended",
  "parserOptions": {
    "sourceType": "module"
  },
  "globals": {
    "angular": true// angular關(guān)鍵詞
  },
  "parser": "babel-eslint", // 解析es7
  "rules": {
    "no-console": 0,
    "quotes": [
      "error",
      "single"
    ]
  }
};

eslint是很靈活的,可以自己按需配置,本項(xiàng)目都是用的官方推薦配置。

項(xiàng)目結(jié)構(gòu)


commonComponents
公共組件目錄,放一些二次封裝的table等等"片段式"的html。
components
頁(yè)面組件目錄,因?yàn)槭菃雾?yè)面應(yīng)用,這里面放置的也就是各個(gè)頁(yè)面了,把每個(gè)頁(yè)面封裝成"大"組件,里面由各自的html和"小"組件拼接而成。
config
路由,URL等等可配置的管理目錄。
css
項(xiàng)目的公用樣式目錄。具體到組件的樣式,會(huì)在各個(gè)組件里面具體寫。比如login組件。

image
圖片目錄。所有圖片統(tǒng)一在這里管理。
server
服務(wù)目錄。對(duì)項(xiàng)目的一些公用服務(wù)進(jìn)行封裝,比如二次封裝http服務(wù)。這個(gè)目錄,還可以細(xì)分,比如將angular的provider,service,value等等再進(jìn)行劃分。

項(xiàng)目入口 app.js
import "babel-polyfill";
import angular from "angular";
import uiRouter from "angular-ui-router";
import components from "./components";
import services from "./server"
import commonComponents from "./commonComponents";
import appRouter from "./config/app.router";
import "./css/main.less";
import style from "./app.less";

let appComponent = {
    restrict: "E",
    template: require("./app.html"),
    controller: function () {
        this.class = style;
    },
    controllerAs: "app"
};

export default angular.module("sass", [uiRouter, components, services, commonComponents])
    .config(appRouter)
    .component("app", appComponent)
    .name;

除了引入angular,還引入了ui-router,因?yàn)樵穆酚?,不支持視圖的嵌套。
components, services, commonComponents是各自組建服務(wù)的匯總,前面已介紹。

寫一個(gè)頁(yè)面組件

下面以登陸頁(yè)面為例。一個(gè)組件頁(yè)面由4個(gè)文件組成,分別是index.js(此頁(yè)面組件的出口,也是其余邏輯,樣式的入口)

import loginCtrl from "./login"
import tem from "./login.html";

export default angular.module("login", [])
  .component("login", {
    template: tem,
    controller: loginCtrl
  })
  .name;

login.js(頁(yè)面的業(yè)務(wù)邏輯在這里)

 import url from "../../config/system.js";

class loginCtrl {
    static $inject = ["http"];
    constructor(http) {
        [this.http, this.name] = [http, `login`];
        this.str = `str${this.name}`;
    }
    login() {
         this.http.get({userName: "link", userPassword: "123456"}, url.login, (data) => {
               console.info("success!")
          });   
    }
}
export default loginCtrl;

這個(gè)類主要完成的業(yè)務(wù)就是發(fā)送一個(gè)登陸http請(qǐng)求,這里的http是二次封裝的一個(gè)服務(wù),與注入原生依賴無異,有兩種注入方式,一種是上邊的在class中調(diào)用靜態(tài)方法。即static $inject = ["http"];
另一種是loginCtrl.$inject = ["http"];(class不存在變量提升,確保寫在class定義之后)

login.less(跟次登陸頁(yè)面相關(guān)的樣式,不貼代碼了)。
這樣就寫好了一個(gè)頁(yè)面組件,由index.js輸出出去,輸出到哪里呢?

統(tǒng)一管理頁(yè)面組件

在剛剛components目錄下寫好的login頁(yè)面組件目錄的同級(jí),建立一個(gè)index.js,作用是用來統(tǒng)一管理組件頁(yè)面。即:

import login from "./login";
import register from "./register";

export default angular.module("components", [
    login,
    register
]).name;

然后再將這個(gè)頁(yè)面輸出到最開始的app.js。即,app.js中引入的components。其他同理,將服務(wù),過濾器等等都統(tǒng)一以相關(guān)文件管理匯總起來,再由入口文件引入。
類似于一種樹形的結(jié)構(gòu):

以上,就簡(jiǎn)單的構(gòu)建好了一個(gè)webpack+es6+angular1.x的項(xiàng)目。

項(xiàng)目地址參考:https://github.com/jiwenjiang...

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

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

相關(guān)文章

  • webpack 教程資源收集

    學(xué)習(xí)的過程中收藏了這些優(yōu)秀教程和的項(xiàng)目,希望對(duì)你有幫助。 github地址, 有不錯(cuò)的就更新 官方文檔 中文指南 初級(jí)教程 webpack-howto 作者:Pete Hunt Webpack 入門指迷 作者:題葉   webpack-demos 作者:ruanyf 一小時(shí)包教會(huì) —— webpack 入門指南 作者:VaJoy Larn   webpack 入門及實(shí)踐 作者:...

    Backache 評(píng)論0 收藏0
  • angular1.x和angular2+并行,angular1.x 升級(jí) angular2+方案

    摘要:可以在不必打斷其它業(yè)務(wù)的前提下,升級(jí)應(yīng)用程序,因?yàn)檫@項(xiàng)工作可以多人協(xié)作完成,在一段時(shí)間內(nèi)逐漸鋪開,下面就方案展開說明主要依賴提供模塊。在混合式應(yīng)用中,我們同時(shí)運(yùn)行了兩個(gè)版本的。這意味著我們至少需要和各提供一個(gè)模塊。 angular1.x 升級(jí) angular2+ 方案 我給大家提供的是angular1.x和angular5并行,增量式升級(jí)方案,這樣大家可以循序漸進(jìn)升級(jí)自己的應(yīng)用,不想看...

    Olivia 評(píng)論0 收藏0
  • Webpack + Angular的組件化實(shí)踐

    摘要:最近寫復(fù)旦二手平臺(tái)的時(shí)候開始嘗試用一直推崇了很久的組件化。經(jīng)過一番抉擇之后選擇了的組合。所以在這里分享一下具體的實(shí)踐流程。自己有自己獨(dú)特的依賴注入以及模塊聲明方式,看起來似乎和是水火不容的,但事實(shí)上他們完全可以融合。 最近寫復(fù)旦二手平臺(tái)的時(shí)候開始嘗試用一直推崇了很久的組件化。經(jīng)過一番抉擇之后選擇了 webpack + angular 的組合。所以在這里分享一下具體的實(shí)踐流程。 Web...

    neuSnail 評(píng)論0 收藏0
  • 一個(gè)前端菜鳥的成長(zhǎng)歷程

    摘要:張?chǎng)涡窭蠋煹奈恼聦懙暮馨?,解決了我的許多困惑。所以,基礎(chǔ)知識(shí)的牢固就顯得尤為重要是個(gè)不怎么聽話的孩子,總是會(huì)搞出一些奇奇怪怪的事情來張?chǎng)涡窭蠋熓昴ヒ粍?,鉆研的魔法,可見其中技術(shù)細(xì)節(jié)有多復(fù)雜。 ??從實(shí)習(xí)算起,到現(xiàn)在工作了也有一年半的時(shí)間了,在這期間,深深感受到了前端領(lǐng)域的飛速發(fā)展,在這里記錄一下自己的成長(zhǎng)歷程,算是對(duì)知識(shí)的一個(gè)梳理,也希望幫助到剛?cè)胄械耐瑢W(xué)們。說來慚愧,大學(xué)里并沒有涉...

    lieeps 評(píng)論0 收藏0
  • 一個(gè)前端菜鳥的成長(zhǎng)歷程

    摘要:張?chǎng)涡窭蠋煹奈恼聦懙暮馨簦鉀Q了我的許多困惑。所以,基礎(chǔ)知識(shí)的牢固就顯得尤為重要是個(gè)不怎么聽話的孩子,總是會(huì)搞出一些奇奇怪怪的事情來張?chǎng)涡窭蠋熓昴ヒ粍?,鉆研的魔法,可見其中技術(shù)細(xì)節(jié)有多復(fù)雜。 ??從實(shí)習(xí)算起,到現(xiàn)在工作了也有一年半的時(shí)間了,在這期間,深深感受到了前端領(lǐng)域的飛速發(fā)展,在這里記錄一下自己的成長(zhǎng)歷程,算是對(duì)知識(shí)的一個(gè)梳理,也希望幫助到剛?cè)胄械耐瑢W(xué)們。說來慚愧,大學(xué)里并沒有涉...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<