[Powered by Google Translate] [Seminar] [JavaScript Altyapıları: niyə və necə]
[Kevin Schmid] [Harvard Universiteti]
[Bu CS50 edir.] [CS50.TV]
>> Hi, everybody. JavaScript Altyapıları seminar xoş gəlmisiniz.
, My name Kevin və mən bu gün JavaScript çərçivəsində söhbət arkasýndayým
və bu seminarın məqsədi, siz almaq demək, özlüyündə müəyyən bir çərçivə master deyil
lakin çərçivəsində bir neçə üçün bir geniş tətbiqi vermək
və biz heç bir çərçivə istifadə etmək istəyirəm ki, niyə göstərir.
>> Bunu əvvəl, mən JavaScript bir az fon təmin edəcəyik
, sonra oradan almaq lazımdır.
Biz siyahısı həyata başlamaq olacaq.
Burada bu gün bizim vəzifəmiz siyahısı var.
Bu funny növü var. Biz JavaScript bir siyahısı həyata lazımdır.
Bu ki, bizim ilk qolu, bu kimi baxmaq nə edir.
Bunu etmək üçün bir çərçivə istifadə etmək niyyətində deyilik.
Biz kodu JavaScript gedən və Ediləcək işlər siyahısına çalışması üçün edirik.
Sonra bir çərçivə istifadə etmədən dizayn yaxşılaşdırılması olacaq.
Biz yalnız JavaScript tək nə edə bilər müxtəlif şeyi müzakirə olacaq
bizim etmək üçün işlər bir az daha yaxşı dizayn siyahısı.
Sonra, bəzi jQuery atmaq olacaq
və sonra biz siyahısı eyni baxmaq olacaq
yalnız müxtəlif çərçivəsində həyata keçirilən və biz müzakirə edəcəyik
yol boyunca lehte ve eksiklikleri.
>> Nin siyahısı ki, həyata başlamaq edək.
Gəlin biz bu HTML sunulur deyirlər.
Mən bu bir az daha kiçik etmək gedirəm.
Gördüyünüz kimi, mən Todo deyir ki, bir az mövzu var
Mən todo təsviri daxil edə bilər və bir az qutusu
və sonra, belə ki, bu siyahıya yeni todo daxil cəhd yeni bir maddə düyməsini bildirin.
Bir JavaScript çərçivəsində seminar ver
və mən yeni bir maddə hit edirəm.
Mən həyata deyir ki, bu JavaScript uyarı almaq.
Biz bunu həyata keçirmək üçün var.
HTML və JavaScript həm də bu üçün kod kontrol edək.
Burada bizim HTML var.
Burada göründüyü kimi, burada kiçik Bütün başlığı var.
Ki, üst edən Cəsur şey idi
və sonra biz tutucu ilə giriş qutusuna var
və sonra bu funksiya addTodo edir ki, bu düyməni müəyyən bir atributu var.
Heç kimə signifying yerləşir basın nə tapmaq istəyir?
[Tələbə işitilemez cavab]
Yaxşı, ki, basın, bir hadisə kimi sort edir
siçan tıklayarak yalnız bir hadisə və nə biz bunu edirik olduğu kimi
ki, funksiyası yerinə bu 'düyməsinə tıklayarak halda tying edirik edir.
AddTodo ki, 'düyməsinə tıklayarak bu olay işleyicisi edir.
>> Gördüyünüz kimi, mən yeni bir maddə düyməsini basın zaman
haqqında klik hadisə atəş olur, və bu funksiya adlı olur.
Funksiyası baxaq.
Gördüyünüz kimi, burada indiyə qədər mənim JavaScript kodu var.
Mən üst mənim siyahısı üçün qlobal data strukturu.
Bu bir sıra kimi görünür. Bu, sadəcə boş sıra var.
Və sonra, biz əvvəllər gördüm ki, addTodo funksiyası var
və orada kod yalnız xətti bu siqnalı edir.
Bu, mənim həyata siqnallar, sonra mən tərəfdən 2 vəzifələr var.
Mən ki, qlobal data structure üçün todo əlavə etmək
sonra da bir-do siyahısı çəkmək istəyirəm.
Heç də yalnız hələ Bəzəkli, lakin JavaScript siz tanış ola bilər
mən yavaş getmək və yol JavaScript əsasları nəzərdən keçirmək üçün gedirəm.
>> Bu bir shot verim.
Gəlin istifadəçi bu qutusuna bir şey olur deyirlər.
Mən yalnız burada, mətn bir şey yazılmış.
Necə JavaScript vasitəsilə giriş, mətn sıralarım?
Ki JavaScript saxla, onun fundamental xüsusiyyətlərindən biri, bu, bizə verir ki,
DOM bu programmatic çıxış.
Bu, bizim bu faktiki HTML elementləri və onların xassələri daxil olmaq üçün imkan verir.
Biz çılpaq bones JavaScript bunu yolu
Biz, həqiqətən, getElementByID adlı JavaScript funksiyası istifadə edə bilərsiniz edir.
Mən bəzi dəyişən orada tipli olan mətn saxlamaq istəyirəm
Mən new_todo adlı yeni dəyişən demək gidiyorum
və mən element almaq üçün gedirəm.
Bu, bir funksiyası var. GetElementByID.
İndi, mən ID tərəfindən element alıram, mən ki, mətn qutusu ID ehtiyac
mən şəxsiyyət new_todo_description təqdim etdik.
Mən bir element almaq üçün gedirəm bilərsiniz.
Bu almaq üçün hansı ID müəyyən etmək, bu funksiyanı mənim dəlil var.
Və belə ki, HTML bir element var və bu xassələri vardır.
Bu gördüm. Onlar atributları istəyirik.
Istifadəçi girişi saxlayan mətn element xüsusiyyətini dəyəri adlanır.
I new_todo adlı dəyişən indi mətn qutusuna dəyəri qurtardı.
İndi bu dəyişən üçün programmatic imkanına malik olan cür sərin edir
İndi mən nə edə bilərsiniz, çünki mən siyahısı əlavə bilər.
>> Biz bu edəcəyini yolu JavaScript və bu tanış değilseniz narahat olmayın,
ancaq onun vasitəsilə davam todos.push edir
up burada qlobal data structure adı var ki,
və I new_todo təkan gedirəm.
Indi mən JavaScript onu əlavə, çünki bu böyük
ki, işlər siyahısı nümayəndəliyi.
Amma indi mən necə HTML geri alıram?
Mən bunu geri itələmək və düzmək üçün bir yol tapmaq lazımdır.
Başqa sözlə, mən növ bu çəkmək lazımdır.
Biz nə olacaq biz Ediləcək işlər siyahısına çəkmək olacaq edir.
Mən bu sayfada digər HTML güncellemeniz lazımdır
Gördüyünüz kimi, mən burada, bu kiçik konteyner tərk etdik
kimin ID todos edir Bu səhifə divider,
və mən orada Ediləcək işlər siyahısına qoymaq üçün gedirəm.
Əvvəl siyahısı köhnə orada idi, demək, çünki onu təmizləmək üçün gedirəm.
Mən yenə ID ki element alıram
və mən ki, element daxili HTML daxil olmaq alıram
mən ki, təmizləmək üçün gedirəm.
Olduğu kimi, biz bu kodu tərk, biz, bir boş bir şey görmək istədiyiniz
və indi mənim yeni siyahısı göstərilməsi başlamaq istəyirəm.
Mən əsasən mənim siyahısı silmək üçün gedirəm.
>> İndi todos div daxili HTML daxilində, tamamilə aydındır
və indi mən siyahısına əlavə başlamaq lazımdır.
Mən əlavə etmək istədiyiniz ilk şey, unordered siyahısı tag edir
olan əsasən bu unordered siyahı start olduğunu bildirir.
İndi mənim todos array hər element üçün edirəm ki, HTML daxili çap etmək istəyirəm.
Mən bu siyahı altına onu əlavə etmək istəyirəm.
Just C kimi, mən loop üçün istifadə edə bilərsiniz, və mən siyahısının başında gidiyorum
element, 0, mən siyahısı uzunluğu bütün yol getmək üçün gedirəm.
Biz əslində uzunluğu əmlakdan istifadə JavaScript bir sıra uzunluğu əldə edə bilərsiniz.
Əsasən Burada daxilində çox oxşar bir şey etmək gidiyorum
ki element çap.
Mən todos div ki, daxili HTML əmlak, gedə bilərsiniz
və mən bu yeni siyahısı maddə əlavə etmək üçün gedirəm, və əhatə olacaq
Bu li tag, və mən + operatoru ilə concatenate gidiyorum
ki, mənim todos serialın Ith element var
və sonra edirəm ki, tag yaxın gedirəm.
İndi hər bir element üçün biz yeni siyahısını giriş əlavə edəcəyik.
Və sonra biz həqiqətən etmək lazımdır ki, bütün etiket off yaxındır.
Mən yalnız siyahısı tag unordered off bağlamaq lazımdır.
>> Ki, işləri necə bir hiss almaq edirsiniz?
Bu, bütün siyahısı açılır.
Bu, todos siyahıdan siyahısına fərdi elementlər əlavə edir
və sonra bütün siyahısı bağlayır və bu, mənim addTodo funksiyanın.
Mən əsasən mətn qutusuna gələn todo əldə başlayır.
Mən todos sıra ki, əlavə, sonra mən Ediləcək işlər siyahısına yenidən göstərir.
İndi mənim siyahısına maddələr əlavə edə bilərsiniz.
Bu cür maraqlı, çünki kodu yalnız bir neçə xətləri ilə
biz əsasən biz maddələr əlavə edə bilərsiniz bir siyahısı etdik.
Böyük.
Bu JavaScript bir əsas tətbiqi növü var.
, Indi üçün sintaksis haqqında çox narahat olmayın
lakin bu konseptual haqqında düşünürəm.
Biz bəzi HTML idi.
Biz daxil işlər bəndinə əsasən icazə users əlavə etmək sayfada mətn qutusu idi.
Və sonra ki, mətn qutusuna ki todo almaq JavaScript istifadə.
Biz JavaScript array daxilində, bu kimi əsasən olduğunu saxlanılır
ki, bizim proqram nümayəndəliyi siyahısı,
və sonra biz onu çap.
Bu todos.js edir.
>> Bu sərin növü deyil, amma necə biz bu da edə bilər?
Gördüyünüz kimi Bəli, bu siyahısı tam kimi deyil.
Məsələn, mən, natamam kimi bu maddələrin hər hansı qeyd edə bilməz
Mən maddələr reprioritize və ya silə istəyirdi istəyirəm.
Bu tamam, ancaq bu daha bilər.
Mən əlavə funksiyalar əlavə haqqında çox çox danışmaq fikrində deyiləm
lakin biz daha da bilər.
Siyahısı üçün bu daha bir xüsusiyyət əlavə söhbət edək,
fərdi işlər maddə kontrol edə olacaq olan
və belə əsasən mən bu etdiyiniz deyərək, pozdurulmaq var.
Ki, yerinə yetirmək bilər ki, bəzi kodu baxaq.
Nə üst etdik mən ekledik fark
yeni qlobal array tam çağırıb.
Mən əsasən saxlamaq üçün bu istifadə alıram olub to-do siyahısı maddələr
tam və ya deyil.
Bu etmək üçün bir yoldur.
Mən bu həyata, görüntü, baxsaq
Mən todo daxil edin və əgər əsasən mən bu keçid düyməsini basın
həyata keçir, bu siyahıda hər bir maddə və ya tam var
və ya natamam dövlət, və mən təmsil etmək üçün bir sıra istifadə edirəm.
>> Əsasən ki todos array hər todo üçün
bir maddə əsasən göstərir ki, tam sıra var
ki, tam və ya olub-olmadığını.
Mən bu kodu olduqca minimal dəyişiklik etmək bulana
Belə ki, burada bizim addTodo funksiyası var.
Burada serialın üzərinə basaraq alıram Qeyd edək ki,
və sonra mən tam array üçün 0 pushing alıram
əsasən demək ki, yeni todo təkan ilə paralel
Mən bu maddə əlavə alıram və bu dəyər ilə coupled oldu
bu natamam var deməkdir.
Və sonra mən to-do siyahısı yenidən çəkilməsi alıram.
İndi bu drawTodoList funksiyası əlavə etdik bilərsiniz.
Bu, əvvəl idi kodu alır
əsasən qutusu həyata təmizləyir və sonra yeni işlər siyahısı çəkir.
Amma bu daxilində loop üçün daha çox indi bir az edirik ki, qeyd.
Biz əsasən Ith todo üçün maddə müvafiq olub burada kontrol edirik
tam və biz bu 2 şəraitdə fərqli davranır edirik.
Tam varsa, biz bu del tag ekliyorsanız
olan əsasən təsiri vasitəsilə tətil əldə edə bilərsiniz yolu
tam varsa İşlər siyahısını kəsişməsi,
bu deyil, əgər, biz o cümlədən deyilik.
Və belə belə ki, qayğı
>> və bunu həyata keçirmək üçün bir yoldur.
Istifadəçi bu bir tıkladığında Və sonra qeyd
biz bunu başa vəziyyəti dəyişə.
Istifadəçi klik, biz bunu başa və ya olub-olmamasına geri olacaq zaman,
və sonra biz onu yenidən lazımdır.
Işlərin bu cür.
Biz öz vəzifələri həyata keçirmək ki, bu funksiyaları
və bu tamam.
Biz baxmayaraq, bu barədə daha yaxşı nə ola bir şey var mı?
Biz bu 2 qlobal seriallarda var bildirək.
Bu C idi və biz növ təmsil ki, 2 seriallarda olsaydı
növ bir şəkildə bağlı olmuşdur ki, məlumat
biz bu 2 sahələri birləşdirmək C nə istifadə edir
informasiya iki ədəd kapsüller ki, bir şey?
Kimsə Yoxmu təklif etmək istəyirsiniz?
[Tələbə işitilemez cavab]
>> Məhz, belə ki, biz struct bir növ istifadə edə bilər
və pset 3, demək, geri hesab edirəm ki, əgər
biz lüğət idi, sonra biz idi xatırlayıram olub sözü
Lüğətə idi, və bütün məlumatlar bir araya verilmişdir
bəzi struktur daxilində.
Mən bu kodu ilə edə bilərsiniz Bir şey bu 2 fərqli serialların qarşısını almaq üçün
informasiyaların oxşar ədəd bir JavaScript object onları birləşdirmək bilər.
Ki, nəzər salaq.
Mən yalnız indi üst bir sıra var Xəbər
və nə mən etdiyiniz edir və bu yalnız növ üçün JavaScript sintaksis deyil
obyektin bir hərfi versiyasını yaratmaq,
və biz todo var, 2 xassələri var fark
və onu tam və ya natamam olub ilə birlikdə saxlanılır.
Bu, çox oxşar kodudur.
Biz JavaScript obyektlərin istifadə edirik.
Yaxşılaşdırır şeyi Bu cür.
Indi kimi, əlaqəli məlumatların bütün bu sahələrdə birlikdə saxlanılır.
Biz bunu çap getmək zaman, biz sahələrində əldə edə bilərsiniz.
>> Biz todos [i] edirik necə hiss. Tam
əvəzinə ayrı-ayrılıqda tam array yoxlanılması,
və biz İşlər əmlak əldə etdiyiniz İşlər string almaq istədiyiniz zaman bildiriş
ki todo ki, bu cür əhəmiyyət kəsb edir, çünki
hər bir maddə bu barədə bu məxsusi xassələri vardır.
Bu todo var və bu, tam və ya yox olub var.
Çox çox dəyişikliklər funksional, yalnız kod bəzi əlavə.
Bu hüquq, bəzi istiqamətlər üzrə inkişaf edir?
Mən bir az dizayn həyata biz factored deməkdir.
İndi biz əsasən Bu data içine obyektlərin var.
Biz JavaScript baxımından burada nə ola bilər çox bir şey var mı?
Kimi bildiriş ki, burada bu kodu
bir div daxili HTML alınması üçün
bir az, mən tapmaq, uzun.
Document.getElementByID ("göstər") var. InnerHTML.
Biz bu kodu bir az friendlier baxmaq üçün nə edə bilər bir şey
Mən geri və irəli, scrolling sol və sağ saxlamaq olmazdı
Mən jQuery kimi bir kitabxana istifadə bilər.
>> Nin, Seminar 2-kontrol edək
və bu eyni kodu, lakin jQuery ilə həyata.
Siz jQuery ilə də tanış ola bilər
ancaq jQuery JavaScript üçün kitabxana növ bilirik ki,
ki, asan DOM çıxış fərdi elementləri kimi şeylər edir.
Burada yerinə document.getElementByID deyərək ("göstər"). InnerHTML
Mən jQuery-ci ildə çox təmiz şəkildə istifadə edə bilərsiniz
olan yalnız selectors istifadə etməkdir.
Gördüyünüz kimi, bu kodu, bir az təmiz almaq idi
çox funksional, oxşar, lakin fikirdir.
Biz bu günə qədər şeyi bir neçə gördüm
belə ki, biz yalnız xam JavaScript həyata keçirilməsi ilə başlamışdır.
Biz yeni funksiyalar əlavə və biz onun təkmilləşdirilməsi necə göstərdi
yalnız biz JavaScript var.
>> Heç kimə bu dizayn ilə heç bir çətinlik görür?
Məhz, mən yalan danışarlar və ya çətinliklər Mütləq deyil demək edək
biz to-do siyahısı bunu deyil, və sabah biz qərar
biz bir baqqal siyahısı və ya bir alış-veriş siyahısı etmək istədi.
Bu funksiyalar bir çox çox oxşardır.
Biz JavaScript çıxmaq istəyirəm şeyi bir çox, çox ümumi
və bu yolu bir növ ehtiyac vurğulayır
etmək üçün bu asan edir.
Mən, bu HTML çıxışı bütün qurmaq üçün bütün bu DOM çıxışı var
Mən bu model ilə to-do siyahısı təmsil gedirəm kimi.
Mən JavaScript geliştiricisi olaraq məsul deyiləm qeyd
Mən sync var ki, HTML və JavaScript saxlanılması üçün.
Avtomatik olaraq heç bir şey ki, JavaScript nümayəndəliyi
və ya to-do siyahısı HTML həyata sövq almaq.
Heç bir şey mənə başqa etdilər.
I siyahısı funksiyası etmək bərabərə yazmaq idi.
Və demək I-ola, o, bunu ağlabatan deyil bilər ki,
amma bəzən yorucu ola bilər.
Daha böyük bir layihə varsa, çətin ola bilər.
>> Çərçivələr, çərçivəsində məqsədləri biri
amil ki, proses və sort həyata asanlaşdırmaq üçün
bu ümumi-Sizi bilər deyə-dizayn nümunələri tapmaq
ki, insanlar ümumiyyətlə, data təmsil yolu bir növ
ki Xəritə məlumat olsun, dostlar siyahısı olub
və ya bir şey və ya to-do siyahısı.
Bəzi insanlar, ümumiyyətlə, informasiya təmsil bir yol var
və ümumiyyətlə senkronize ki, informasiya növ saxlamaq lazımdır
istifadəçi baxımından bir növ görür nə arasında,
Siz mühazirə gördüm ki, model görünüşü nəzarətçi kimi baxımından danışan
və bu halda bu JavaScript array olan model.
Çərçivəsində bizə problem həll etmək üçün bir yol verir.
İndi siyahısı bu həyata nəzər bildirin
angularjs adlı çərçivəsində.
Bu deyil. Bir Slayd üzərində uyğun bilərsiniz.
Mən sol və sağ hərəkət etmək yoxdur.
Ki, yəqin ki, bir çərçivə istifadə edərək gəlir böyük bir səbəbi deyil
lakin bildiriş Mən heç burada fərdi HTML elementləri daxil olmaq alıram?
Mən heç DOM daxil gedirəm?
Bu kimi hər hansı bir document.getElementByID və ya bir şey görürsünüzmü?
Xeyr, o getdi.
>> Bucaq bizə DOM və bir şey bizim JavaScript nümayəndəliyi davam edir
senkronize növü, o, JS faylı deyil əgər
program bütün HTML content almaq yolu yoxdur, əgər
JavaScript nə biz sync bu saxlanılır?
Bu. Js faylı deyilsə, sağ, HTML olmaq var?
Bu, HTML fayl yeni versiyası
və biz burada bir çox ekledik bilərsiniz.
Ng basın və ng-təkrar deyirlər ki, bu yeni atributları var bildirək.
Dizayn çətinliklər bu problemin həllinə Bucaq yanaşması
əsasən HTML çox daha güclü etməkdir.
Bucaq HTML qədər daha ifadəli etmək üçün imkan bir yoldur.
Məsələn, mən bu mətn qutusuna bağlamaq və ya lər ​​gedirəm deyə bilərəm ki,
mənim Bucaq JavaScript kodu çərçivəsində dəyişən üçün.
Bu ng-model yalnız ki, yoxdur.
Əsasən deyir ki, obyekt bu mətn qutusuna daxilində ki,
yalnız dəyişən new_todo_description ilə şərik
JavaScript kodu daxilində.
Mən açıq-aydın getmək yoxdur, çünki çox güclü
DOM ki, məlumat almaq üçün.
Mən document.getElementByID demək yoxdur.
Mən DOM çıxış kimi jQueries istifadə etmək yoxdur.
Hesab edirəm ki, dəyişən dəyişdirmək zaman Mən sonra dəyişən ilə birləşmək olar
JavaScript ərzində, HTML ile senkronize saxlanılır
belə ki, iki arasında geri və irəli getmək üçün olan prosesi asanlaşdırır.
Bu mənada edirmi?
>> Və heç HTML çıxış kodu var bilərsiniz.
Biz yalnız, HTML daha güclü etdik
və indi, məsələn, biz bu kimi şeylər edə bilər
Bu basın zaman, todos.js çərçivəsində bu funksiyanın zəng kimi,
və bu ng-model kimi, biz əvvəl bunu edə bilər, lakin digər şeylər var
və bu ng-repeat bilərsiniz.
Bu, nə düşünürsünüz?
Burada əvvəl bizim unordered siyahısı var.
Biz ul yazıları
amma mən heç JavaScript kodu içərisində O siyahıda göstərilməsi edirəm?
Mən heç açıq şəkildə siyahı göstərilməsi deyiləm.
Bu nasıl çalışır?
Yaxşı, yol Bucaq bu bir repeater adlanır deyil həyata keçirir.
Əsasən Mən bu HTML çap etmək istəyirəm ki, deyir
mənim todos array hər todo daxilində üçün.
Todos.jr daxilində todos array, sağ burada
və bu ki, array vasitəsilə Bucaq go izah edəcəyəm və hər bir element üçün Gördüyünüz
Mən sizə bu HTML çap etmək istəyirik.
Mən bunu yalnız bilər, çünki bu zəhmli növü
loop üçün yazmaq olmadan,
olan kodu yalnız 30 xətləri idi ki, bir siyahısı üçün
ən faydalı şey ola bilər,
böyük bir layihə var, lakin əgər, bu çox rahat əldə edə bilər.
>> Bu HTML daha güclü edilməsi, bu problemin bir həll deyil,
və bizə senkronize JavaScript və HTML saxlamağa imkan verir.
Bu problemi həll etmək üçün digər mümkün yolları var
hər çərçivəsində bu deyil.
Hər çərçivəsində bu xətt işləyir.
Bəzi çərçivələr, müxtəlif yanaşmalar var
və siz digər üzərində bir çərçivəsində kodlaşdırma zövq ki, tapa bilərsiniz.
Daha bir baxaq.
Bu Backbone adlı çərçivəsində kodlu İşlər siyahısı.
Mən tez bu yolu getmək üçün gedirəm.
Biz orada getmək əvvəl Mən HTML ilə başlamaq lazımdır.
Bir ikinci.
Fark kimi, HTML başlayaraq, bizim HTML çox oxşardır
ki, qarşısında əvvəl belə çox yeni idi nə.
Amma bizim js fayl bir az fərqlidir.
Və Backbone cür bu fikri var, və ya fikir əsaslanır
biz nə çox, demək ki, bizim JavaScript layihələr
modellər və bu modellərin kolleksiyaları haqqında düşünür.
Bu, misal üçün, şəkil bir şəkil və kolleksiyaları ola bilər
və ya dostlar bir dost və kolleksiyaları fikir.
Və oftentimes JavaScript applications proqramlaşdırma etdiyiniz zaman
dostlar bir toplama fikri təmsil biz düzmək lazımdır
elə JavaScript və Backbone bizə bu qat verir
JavaScript mövcud Diziler və obyektlərin üst
daha asan ki, daha güclü şeylər.
>> Burada, bir to-do model müəyyən etdik
və siz sintaksis haqqında çox çox narahat yoxdur
lakin nə bu xüsusiyyətləri biri fark?
Bu default yatağı var.
Backbone mənə yarasa off artıq müəyyən etmək üçün imkan verir
Mən yaratmaq ki, işlər hər hansı yeni bu u mənim üçün gedir.
İndi bu özelleştirmek, lakin u mənim müəyyən etmək üçün olan edə bilərsiniz
gözəl və bu kimi bir şey deyil, çünki rahat növü var
JavaScript xas olan, indi aydın yoxdur
ki, todos natamam olduğunu bildirirlər.
Mən todos natamam kimi qeyd edir ki, hüququ yarasa off deyə bilərəm.
Sonra Azadlıqlar bu nədir?
İndi bir siyahısı var, və bir toplama edir.
Model todo deyir ki, ilə bağlı sahədə bilərsiniz.
Bu Backbone izah mənim yoludur
Mən bu fərdi todos toplusu haqqında düşünür ola gedirəm.
Bu əsasən mənim proqramı üçün model strukturu.
Burada bir toplama bu fikir var
və əsasən toplanması olan bütün öğeleri, bu todos olacaq
və bu mənada çox təbii
Mən çünki todos var və mən bir toplama onları var.
>> Bu bir az daha baxaq.
Burada Backbone rəyidir.
Backbone deyir ki, digər odur ki,
siz və ya hətta kolleksiyaları düşüncə etdiyiniz modellərin bir çox
nümayiş etdirilir bəzi yol lazımdır edir.
Biz siyahısı ki, göstərmək lazımdır
Biz hər bir model üçün təmin edə bilər, əgər bu gözəl ola bilməz
və ya hər modeli ilə bu fikri şərik
bizə imkan verir ki, iki birlikdə əlaqə tahmin?
Əvvəl Halbuki biz axır ki, loop üçün istifadə etmək məcburiyyətində
hər bizim siyahısına todo və sonra burada çap
biz əsasən bu model ilə qoşula bilərlər.
Bu işlər rəyidir.
Bu əvvəllər aşkar todo ilə bağlıdır.
İndi hər todo görüntülenebilir və ya renderable edir
bu nöqteyi-do.
Bəzi yataqlarda bilərsiniz.
Əgər bu tagName edir tagName nə düşünürsünüz: Li?
Bir todo göstərmək üçün biz istəyərkən əvvəl saxla
biz aydın şəkildə bu li etiketi ilə todos qoşmaq lazımdır.
İndi biz bu todo yaşamağa davam yerləşir söyləyərək edirik
bir li tag daxilində olacaq.
İndi biz də todos tədbirlər şərik edirik.
>> Hər todo bu bir hadisə var.
Siz olduqca çox keçid düyməsini basın varsa, ki, mən orada dedi alıram nə var
sonra əsasən əvvəl nə qarşı kimi todo qeyd
və sonra tətbiq yenidən göstərir.
Bu önce kodu oxşar növ edir.
Biz də qarşı və ya kimi qeyd zaman saxla
sonra biz yenidən göstərmişdir.
Amma indi HTML idi ki, bir şey üçün istifadə bu hadisə bildiriş.
Orada oturmuşdu.
Düyməsini bir klik idi.
'Düyməsinə basın, o cür üçün stuff edir
todo natamam olması qurmaq.
Burada ki, keçid düyməsini tıklayarak ki, hadisə bağlı etdik
və bu görünüşü ilə və ya söndürmək olub geri.
>> Çox sıx bağlı olan bu bu hadisə yaradılması bir gözəl yoludur
Bu baxımdan və daha çox bu bilərsiniz.
Mən bu render metodu var və biz detalları ilə getmək yoxdur.
Bu, biz əvvəl nə oxşar növ var
amma bir şey vasitəsilə loop deyiləm bilərsiniz.
Mən bütün öğeleri çap gedirəm deyərək növ var ki, ul etiket çap deyiləm.
Mən bu bir-do maddə göstərilməsi üçün işlevsellik təmin alıram.
Bu, əsasən bir çox güclü anlayışdır
Bizim siyahısı bütün bu todos ibarətdir və biz əsasən müəyyən edə bilər, əgər
o todos biri göstərməyə yolu
sonra biz özlüyündə bizim güclü backbone ola bilər todos bütün göstərmək
fərdi todos üzrə render üsulu axtararaq.
Burada faydalı bir anlayışdır.
İndi soruşmaq yaxşı sual bu proqram necə bir araya olunur var?
Biz bir todo göstərmək imkanı var, çünki
lakin biz çox göstər ideyası alıram?
>> Ki, nəzər salaq.
Bu son hissəsidir.
Biz burada siyahısı görünüşü var bildiriş
və bu da bir görünüşü var bilərsiniz.
Və hər şeyi bir neçə üzərində getmək,
biz ilk bu-do siyahısı yaratmaq zaman bu initialize üsulu adlanacaq.
Gördüyünüz kimi, bu Ediləcək işlər siyahısına yaradılması və bu fikri ilə şərik kimi.
Əgər əlavə və sonra mən əsasən burada funksiyaları əlavə maddə-
bu addItem metodu oxşar biz əvvəl gördüm
Mən yeni todo obyekt yaratmaq, və mən, həqiqətən, zəng alıram qeyd gidiyorum
Bu yeni todo üsul, bu Backbone tərəfindən təmin edilir,
və mən burada mənim xassələri keçə bilər.
Və indi bu istifadə yaradır ki, hər bir todo biz əvvəl gördüm ki, funksionallıq olacaq.
Mən mətn qutusuna həyata klirinq alıram əvvəl kiçik bir az ətraflı-Xəbər
və sonra bu toplanması əlavə alıram.
>> Bu demək olar ki, qəribə görünür biz yalnız todos.push bunu əvvəl, çünki
və sonra biz görülmüş, və bu layihə üçün daha çətin görünə bilər
və bu Backbone və ya hətta Bucaq ya hər hansı digər çərçivəsində ola bilər
xüsusi layihə uyğun, lakin mən bu barədə düşünmək üçün vacib hesab etmir
nə bu daha böyük layihələr üçün böyük miqyasda deməkdir ki,
Çünki biz təmsil olunduğu böyük layihə olsa
bəzi həqiqətən kompleks toplanması, yalnız bir siyahısı daha dərin bir şey,
Bir dost siyahısını və ya bu kimi bir şey demək istəyirəm, bu yararlı ola bilər
Çünki biz, həqiqətən rahat şəkildə kodu təşkil edə bilər
başqası üçün daha asan edəcək bir şəkildə
kim ilə qurmaq bir layihə ala istədi.
Bu quruluş bir çox təmin olduğunu görə bilərsiniz.
Və sonra mən bu addItem haqqında göstərməyə zəng alıram.
Gördüyünüz kimi, göstərir və bu tam syntax tutmaq yoxdur,
lakin əsasən hər bir model üçün fərdi render metodu zəng olacaq.
Bu gəlir harada növ var.
Yalnız fərdi todos göstərməyə necə müəyyən edək,
və sonra bütövlükdə bitişdirmək onlara bildirin.
Amma bu abstraksiya bir yol təqdim edir
Mən fərdi todos göstərməyə qərar yol dəyişə bilər, çünki,
və bu kodu hər hansı bir dəyişiklik olmazdı.
Belə sərin var.
>> Heç kimə JavaScript çərçivəsində haqqında hər hansı bir sualınız varmı?
[Tələbə işitilemez sual]
Oh, əmin ki, böyük bir sual.
Sualına necə çərçivəsində daxil idi?
Ən JavaScript çərçivəsində əsasən yalnız js faylları
Siz kodu üst əlavə edə bilərsiniz ki.
Mən bütün bu script tags mənim HTML rəhbəri hissəsi bildiriş,
və yekun script tag biz yazdıq ki, kodudur.
Və sonra 3 çərçivəsində kodları yalnız da script tags var.
Mən CDN deyirlər nə onlara, o cümlədən alıram
mənə bu nöqtədə başqası onu almaq üçün imkan verir
lakin hər çərçivəsində bu olduqca çox məzmun tapa bilərsiniz
kimi bəzi CDN və ya bir şey mövcud xüsusi JavaScript kitabxana üçün,
və sonra bu script tags əlavə edə bilərsiniz.
Bu mənada edirmi?
Sərin.
>> Həmin 2 müxtəlif yanaşmalar var.
Bu problemin həlli üçün yeganə yanaşma deyil.
Bir çox farklı şey var ki,
kimsə edə bilər, və bir çox çərçivəsində orada var.
Bucaq və Backbone bütün hekayə demək deyil.
Son layihələri ilə Uğurlar, çox təşəkkür edirəm.
[CS50.TV]