AngularJS - Википедия - AngularJS

AngularJS
AngularJS logo.svg
ӘзірлеушілерGoogle
Бастапқы шығарылым2010 жылғы 20 қазан; 10 жыл бұрын (2010-10-20)[1]
Тұрақты шығарылым
1.8.0 / 1 маусым 2020 ж; 6 ай бұрын (2020-06-01)[2]
РепозиторийAngularJS репозиторийі
ЖазылғанJavaScript
ПлатформаJavaScript қозғалтқышы
Өлшемі167 кБ өндіріс
1,2 МБ дамыту
ТүріВеб-құрылым
ЛицензияMIT лицензиясы
Веб-сайтбұрыштық.org Мұны Wikidata-да өңдеңіз

AngularJS Бұл JavaScript - негізделген ашық көзі алғы жақ веб-құрылым негізінен Google дамуда кездесетін көптеген мәселелерді шешу үшін жеке адамдар мен корпорациялар қауымдастығы бір парақты қосымшалар. Бұл дамуды да, жеңілдетуді де көздейді тестілеу осындай қосымшалар клиенттің жақтауы үшін модель - көрініс - контроллер (MVC) және model – view – viewmodel (MVVM) архитектураларында, әдетте қолданылатын компоненттермен бірге Интернетке бай қосымшалар.

AngularJS фронт ретінде қолданылады МАҒЫНА тұратын стек MongoDB дерекқор, Express.js веб-бағдарлама серверінің негізі, Angular.js өзі және Node.js сервердің жұмыс уақыты ортасы. 1.8.x нұсқасы 2021 жылдың 31 желтоқсанына дейін ұзақ мерзімді қолдауда. Осы күннен кейін AngularJS жаңартылмайды және Бұрыштық (2.0+) орнына ұсынылады.[3][4]

Шолу

AngularJS шеңбері бірінші оқумен жұмыс істейді Гипермәтінді белгілеу тілі (HTML) парағы, оның қосымша әдет-ғұрпы бар HTML атрибуттары оған енгізілген. Бұл атрибуттарды бұрыштық ретінде түсіндіреді директивалар парақтың кіріс немесе шығыс бөліктерін стандартты JavaScript ұсынатын модельге байланыстыру үшін айнымалылар. Осы JavaScript айнымалыларының мәндері код ішінде қолмен орнатылуы немесе статикалық немесе динамикалық күйден шығарылуы мүмкін JSON ресурстар.

AngularJS деген сенімге негізделген декларативті бағдарламалау жасау үшін пайдалану керек пайдаланушы интерфейстері және қосылыңыз бағдарламалық жасақтама компоненттері, ал императивті бағдарламалау қосымшаны анықтауға ыңғайлы іскерлік логика.[5] Рамка дәстүрлі HTML-ді модельдер мен көріністерді автоматты түрде синхрондауға мүмкіндік беретін деректерді екі жақты байланыстыру арқылы динамикалық мазмұнды ұсыну үшін бейімдейді және кеңейтеді. Нәтижесінде AngularJS айқын емес деп санайды Құжат нысанының моделі (DOM) манипуляция тестілеу мен өнімділікті жақсарту мақсатында.

AngularJS жобалау мақсаттары:

  • бағдарлама логикасынан DOM манипуляциясын ажырату. Оның қиындығына кодтың құрылымы күрт әсер етеді.
  • қосымшаның клиенттік жағын сервер жағынан ажырату. Бұл әзірлеу жұмыстарының қатар жүруіне мүмкіндік береді және екі жағын да қайта пайдалануға мүмкіндік береді.
  • қосымшаны құру сапарының құрылымын қамтамасыз ету: интерфейсті жобалаудан бастап, іскери логиканы жазу арқылы тестілеуге дейін.

AngularJS тұсаукесерді, деректерді және логикалық компоненттерді бөлу үшін MVC үлгісін жүзеге асырады.[6] Қолдану тәуелділік инъекциясы, Бұрыштық дәстүрлі түрде әкеледі сервер жағында клиенттік веб-қосымшаларға қарауға тәуелді контроллерлер сияқты қызметтер. Демек, сервердегі жүктеменің көп бөлігі азайтылуы мүмкін.

Қолдану аясы

AngularJS «ауқым» терминін информатика негіздеріне ұқсас қолданады.

Қолдану аясы информатикада бағдарламада нақты уақытты сипаттайды міндетті жарамды. The ECMA-262 спецификация шеңберді келесідей анықтайды: функционалдық объект клиенттік веб-сценарийлерде орындалатын лексикалық орта;[7] ауқымның қалай анықталатынына ұқсас лямбда есебі.[8]

«MVC» архитектурасының бөлігі ретінде ауқым «Модельді» құрайды және ауқымда анықталған барлық айнымалыларға «Қарау» және «Контроллер» қол жеткізе алады. Ауқым желім ретінде жұмыс істейді және «Көрініс» пен «Контроллерді» байланыстырады.

Жүктеуіш

AngularJS орындайтын тапсырма жүктеуіш үш фазада жүреді[9] DOM жүктелгеннен кейін:

  1. Жаңа инжекторды құру
  2. DOM-ны безендіретін директивалар құрастыру
  3. Барлық директиваларды қолдану аясына байланыстыру

AngularJS директивалары әзірлеушіге деректерді байланыстыруды және презентация компоненттерінің мінез-құлқын анықтайтын HTML-ға ұқсас элементтер мен атрибуттарды көрсетуге мүмкіндік береді. Кейбір жиі қолданылатын директивалар:

ng-жандандыру
Модуль JavaScript, CSS3 ауысуы және қолданыстағы негізгі және қолданушы директиваларында CSS3 негізгі кадрлық анимация ілмектеріне қолдау көрсетеді.

Бастап нг- * атрибуттар HTML сипаттамаларында жарамсыз, деректер-ng- * префикс ретінде де қолданыла алады. Мысалы, екеуі де ng-app және data-ng-қолданбасы AngularJS-те жарамды.

ng-app
AngularJS қосымшасының негізгі элементін жариялайды, оның негізінде директивалар байланыстыруды жариялау және мінез-құлықты анықтау үшін қолданыла алады.
ng-aria
Жалпыға қол жетімділікті қолдау модулі ARIA атрибуттары.
байланыстыру
DOM элементінің мәтінін өрнек мәніне қояды. Мысалға, <span ng-bind="name"></span> span элементінің ішіндегі ‘name’ мәнін көрсетеді. Қосымшаның ауқымындағы ‘аты’ айнымалысының кез-келген өзгерісі DOM-да бірден көрінеді.
ng-класс
Логикалық өрнектің мәніне байланысты класты шартты түрде қолданыңыз.
ng-контроллер
HTML өрнектерін бағалайтын JavaScript контроллер класын анықтайды.
ng-if
Егер шарттар дұрыс болса, келесі элементті негіздейтін Basic if операторының директивасы. Шарт жалған болған кезде, элемент DOM-дан жойылады. Шын болған кезде, жинақталған элементтің клоны қайтадан енгізіледі.
ng-init
Элемент инициализацияланған кезде бір рет шақырылады.
ng-модель
Ұқсас байланыстыру, бірақ көрініс пен ауқым арасында екі жақты деректерді байланыстырады.
ng-model-options
Модель жаңартуларының қалай жасалатынын анықтайды.
ng-қайталау
Жинақтан бір элемент үшін бір рет элемент жасаңыз.
ng-шоу & ng-hide
Логикалық өрнектің мәніне байланысты элементті шартты түрде көрсетіңіз немесе жасырыңыз. Көрсету және жасыру CSS көрсету мәнерін орнату арқылы жүзеге асырылады.
ng-қосқыш
Таңдау жиынтығынан таңдау шаблонының мәніне байланысты шартты түрде бір шаблон жасайды.
ng-көрініс
Маршруттарды басқаруға жауапты базалық директива[10] көрсетілген контроллерлер басқаратын шаблондарды көрсетпес бұрын JSON шешеді.

Мәліметтерді екі жақты байланыстыру

AngularJS екі жақты деректерді байланыстыру - бұл оның назар аударарлық ерекшелігі, негізінен сервердің азғыру міндеттерін жеңілдетеді. Оның орнына шаблондар қарапайым HTML түрінде модельде анықталған ауқымдағы мәліметтерге сәйкес беріледі. The $ ауқымы бұрыштық қызмет модель бөліміндегі өзгерістерді анықтайды және контроллер арқылы көріністегі HTML өрнектерін өзгертеді. Сол сияқты, көрініске енгізілген кез-келген өзгерістер модельде көрінеді. Бұл DOM-ті манипуляциялау қажеттілігін жоққа шығарады және жүктеуді және веб-қосымшалардың тез прототипін жасауға шақырады.[11]AngularJS моделдердегі өзгерістерді ағымдық мәндерді лас тексеру процесінде бұрын сақталған мәндермен салыстыру арқылы анықтайды. Ember.js және Backbone.js модель мәндері өзгерген кезде тыңдаушыларды іске қосады.[12]

$ watch
бұл лас тексеру үшін қолданылатын бұрыштық әдіс. $ Ауқымында берілген кез келген айнымалы немесе өрнек автоматты түрде а орнатады $ watchExpression бұрыштық. Сонымен айнымалыны тағайындау $ ауқымы немесе сияқты директиваларды пайдалану ng-if, ng-show, ng-қайталау т.б. барлығы автоматты түрде бұрыштық сағаттар жасайды. Бұрыш қарапайым массивті қолдайды $$ бақылаушылар ішінде $ ауқымы нысандар
AngularJS-те бақылаушыны анықтаудың әртүрлі тәсілдері.
  • $ атрибутты қарау керек $ ауқымы.
    $ ауқымы. $ қарау ('person.username', validateUnique);
  • шаблоныңызға интерполяцияны орналастырыңыз (ағымдағы $ ауқымында сіз үшін бақылаушы құрылады).
  • сияқты директиваны сұраңыз ng-модель сіз үшін бақылаушыны анықтау.
    <input ng-model="person.username" />
$ дайджест
бұл ішкі аралықта бұрыштық әдіспен шақырылатын бұрыштық әдіс. Жылы $ дайджест әдісі, бұрыштық итерация бәрінде $ сағаттар оның ауқымында / бала ауқымында.
$ қолдану
іштей шақыратын бұрыштық әдіс $ дайджест. Бұл әдіс бұрыштық қолмен лас тексеруді бастаңыз деген кезде қолданылады (бәрін орындаңыз) $ сағаттар)
$ жою
бұрыштардағы әдіс және оқиға болып табылады. $ destroy () әдісі, ауқымды және оның барлық балаларын лас тексеруден алып тастайды. $ жою $ ауқымы немесе $ контроллері жойылған кезде оқиға бұрыштық деп аталады.

Даму тарихы

AngularJS алғашында 2009 жылы Miško Hevery жасаған[13] Brat Tech LLC-де[14] Интернеттегі бағдарламалық жасақтама ретінде JSON Кәсіпорынға оңай қосымшалар үшін мегабайтпен бағаланған сақтау қызметі. Бұл кәсіпорын «GetAngular.com» веб-доменінде орналасқан,[14] және бірнеше жазылушылары болған, екеуі бизнес идеясынан бас тартып, Angular-ді ашық кітапхана ретінде шығаруға шешім қабылдағанға дейін.

1.6 шығарылымы көптеген тұжырымдамаларды қосты Бұрыштық компоненттерге негізделген қолданбалы архитектура тұжырымдамасын қоса, AngularJS-ке.[15] Бұл басқалармен бірге Sandbox-ты алып тастады, көптеген жасаушылар құм жәшігін айналып өткен көптеген осалдықтарға қарамастан, қосымша қауіпсіздікті қамтамасыз етеді.[16] AngularJS ағымдағы (2020 жылдың наурызындағы жағдай бойынша) тұрақты шығарылымы - 1,7,9[17]

2018 жылдың қаңтарында AngularJS-ті тоқтату кестесі жарияланды: 1.7.0 шығарылғаннан кейін AngularJS-тің белсенді дамуы 2018 жылдың 30 маусымына дейін жалғасады. Кейін 1,7 2021 жылдың 30 маусымына дейін қолданады ұзақ мерзімді қолдау.[18]

Бұрынғы браузерді қолдау

AngularJS 1.3 және одан кейінгі нұсқалары қолдамайды Internet Explorer 8 немесе одан ертерек. AngularJS 1.2 IE8-ді қолдайды, ал оның командасы қолдамайды.[19][20]

Бұрыштық және бұрыштықDart

AngularJS келесі нұсқалары жай деп аталады Бұрыштық. Бұрыштық - бұл үйлесімді емес TypeScript - AngularJS негізіндегі қайта жазу. Бұрыштық 4 2016 жылдың 13 желтоқсанында v3.3.0 ретінде таратылған маршрутизатор пакетінің нұсқасының сәйкес келмеуі салдарынан шатасуды болдырмау үшін 3 өткізіп жіберу туралы жарияланды.[21]

AngularDart жұмыс істейді Дарт, бұл объектіге бағытталған, сынып анықталды, жалғыз мұра қолдану арқылы бағдарламалау тілі C стиль синтаксис, бұл бұрыштық JS-ден өзгеше (ол қолданады) JavaScript ) және бұрыштық 2 / бұрыштық 4 (қолданады TypeScript ). Бұрыштық 4 2017 жылдың наурызында шығарылды, раманың нұсқасы ол қолданған маршрутизатордың нұсқа нөміріне сәйкес келді. Angular 5 2017 жылдың 1 қарашасында шығарылды.[22] Angular 5-тің негізгі жетілдірулеріне прогрессивті веб-қосымшаларды қолдау, құрастыру оптимизаторы және Материалдық дизайнға қатысты жақсартулар кіреді.[23] Angular 6 3 мамырда 2018 шығарылды,[24] Бұрыштық 7 шығарылымы 2018 жылдың 18 қазанында, ал бұрыштық 8 шығарылымы 2019 жылдың 28 мамырында шығарылды. Бұрыштық нұсқалар әрбір негізгі нұсқасының ықтимал бұзылуын көрсететін семантикалық нұсқа нұсқаларына сәйкес келеді. Angular әрбір негізгі нұсқа үшін 6 айлық белсенді қолдауды, содан кейін 12 айлық ұзақ мерзімді қолдауды қамтамасыз етуге уәде берді. Негізгі шығарылымдар екі жылда бір рет шығарылады, әр негізгі шығарылым үшін 1-ден 3-ке дейін кішігірім шығарылымдар.[25]

Бұрыштық әмбебап

Кәдімгі бұрыштық қосымша шолғышта орындалады, ал Angular Universal серверде статикалық қосымшалар беттерін сервер жағынан көрсету (SSR) арқылы жасайды.[26]

Кітапханалар

Бұрыштық материал

Бұрыштық материал - а UI іске асыратын компоненттік кітапхана Материалдық дизайн AngularJS ішінде.[27]

Chrome кеңейтімі

2012 жылдың шілдесінде Angular командасы үшін кеңейтім жасады Google Chrome Батаранг деп аталатын браузер,[28] бұл Angular көмегімен жасалған веб-қосымшалардың күйін келтіру тәжірибесін жақсартады. Кеңейтім жұмыс барысында кездесетін қиындықтарды оңай анықтауға мүмкіндік береді және қолданбаларды жөндеу үшін GUI ұсынады.[29] 2014 жылдың аяғында және 2015 жылдың басында біраз уақыт кеңейту Angular шығарылымымен (v1.2.x кейін) сәйкес келмеді.[30] Бұл кеңейтілімге соңғы жаңарту 2017 жылдың 4 сәуірінде болды.

Өнімділік

AngularJS а парадигмасын анықтайды ас қорыту циклі. Бұл циклды цикл деп санауға болады, оның барысында AngularJS барлық айнымалыларда барлық өзгеретіндердің өзгергендігін тексереді. $ ауқымы. Егер $ kapsam.myVar контроллерде анықталған және бұл айнымалы көру үшін белгіленді, бұрыштық цикл итерациясында myVar-дағы өзгерістерді бақылайды.

Бұл тәсіл AngularJS ішіндегі тым көп айнымалыларды тексерген кезде баяу көрсетілімге әкелуі мүмкін $ ауқымы әр цикл. Miško Hevery кез-келген бетте 2000-нан аз бақылаушы ұстауды ұсынады.[12]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ Ең алғашқы шығарылымдар
  2. ^ «Шығарылымдар». GitHub.
  3. ^ https://docs.angularjs.org/misc/version-support-status
  4. ^ https://blog.angular.io/stable-angularjs-and-long-term-support-7e077635ee9c
  5. ^ «Бұрыштық дегеніміз не?». Алынған 12 ақпан 2013.
  6. ^ Компоненттер туралы түсінік
  7. ^ «Аннотацияланған ECMAScript 5.1, 10.2-бөлім. Лексикалық орталар». Алынған 2015-01-03.
  8. ^ Барендрегт, Хенк; Барендсен, Эрик (наурыз 2000), Lambda Calculus-ке кіріспе (PDF)
  9. ^ «Директивалар жазу». angularjs.org. 28 қараша 2012 ж. Алынған 2013-07-21.
  10. ^ Компонентті маршрутизатор
  11. ^ «5 керемет AngularJS ерекшелігі». Алынған 13 ақпан 2013.
  12. ^ а б Миско Хевери. «Бұрыштық мәліметтер қоры». Алынған 2014-03-09.
  13. ^ «Сәлем Әлем, міне». Алынған 2014-10-12.
  14. ^ а б «GetAngular». Бұрыштық / BRAT Tech. ЖШҚ. Архивтелген түпнұсқа 2010-04-13. Алынған 2014-10-12.
  15. ^ «AngularJS: v1.5.8 үшін әзірлеуші ​​нұсқаулығы: компоненттер». Алынған 2017-09-26.
  16. ^ «angular.js / CHANGELOG.md». GitHub. Алынған 2017-09-26.
  17. ^ «Github шығарылымы 1.7.9».
  18. ^ «Тұрақты AngularJS және ұзақ мерзімді қолдау». Бұрыштық блог. 2018-01-26. Алынған 2018-03-16.
  19. ^ «Internet Explorer үйлесімділігі». Angular JS 1.7.7 әзірлеушілерге арналған нұсқаулық. Алынған 12 ақпан 2019. AngularJS 1.3 IE8-ді қолдайды. Бұл туралы толығырақ біздің блогтан оқыңыз. AngularJS 1.2 IE8-ді қолдауды жалғастырады, бірақ негізгі команда IE8 немесе одан ертеректегі мәселелерді шешуге уақыт бөлуді жоспарламайды.
  20. ^ Минар, Игорь. «AngularJS 1.3: жаңа шығарылым жақындады». AngularJS блогы. Алынған 2014-10-12.
  21. ^ «Жарайды ... түсіндіріп берейін: бұрыштық 4.0 болады». angularjs.blogspot.kr. Алынған 2016-12-14.
  22. ^ https://blog.angular.io/version-5-0-0-of-angular-now-available-37e414935ced
  23. ^ «Бұрыштық 5 JavaScript шеңбері кешіктірілді».
  24. ^ Флюин, Стивен (3 мамыр 2018). «Бұрыштың 6 нұсқасы қазір қол жетімді - бұрыштық блог». Бұрыштық блог. Алынған 8 маусым 2018.
  25. ^ «Бұрыштық нұсқасы және шығарылымдары». бұрыштық.io. Алынған 8 маусым 2018.
  26. ^ «Dynamic SSR & Static Pre-rendering».
  27. ^ Котару, В.Керти (2016-08-25). Материалдық дизайнды AngularJS көмегімен жүзеге асыру: интерфейстің құрамдас бөлігі. Апрес. б. 4. ISBN  9781484221907.
  28. ^ «angular / angularjs-batarang (GitHub)». Алынған 2014-10-12.
  29. ^ Форд, Брайан. «AngularJS Batarang-пен таныстыру». AngularJS блогы. Алынған 2014-10-12.
  30. ^ «AngularJS үшін Chromeang кеңейтімі сынған сияқты».

Әрі қарай оқу

Сыртқы сілтемелер