[Powered by Google Translate] [Seminar] [JavaScript raamistike: miks ja kuidas?] [Kevin Schmid] [Harvard University] [See on CS50.] [CS50.TV] Tere kõigile. Tere tulemast JavaScript raamistike seminar. Minu nimi on Kevin ja täna ma lähen rääkima JavaScript raamistike ja Eesmärk on see seminar ei ole sulle, ütleme, kapten eelkõige raamistik iseenesest kuid sulle laialdast kasutuselevõttu paar raamistike ja näidata, miks me ei oleks kunagi tahame kasutada raamistikus. Enne kui ma seda teha, ma pakkuda veidi tausta JavaScript, ja siis me võtame ta sealt. Me läheme alustada rakendades to-do list. Siin on meie ülesanne nimekirja täna. See on omamoodi naljakas. Me peame rakendama to-do nimekirja JavaScript. See on see, et see saab nägema, et see on meie esimene eesmärk. Me ei kavatse kasutada raames teha. Me läheme kood JavaScript ja saada to-do list tööd. Siis me lähme, et parandada disaini, kasutamata raamistik. Me läheme, et arutada erinevaid asju, mida me saame teha vaid JavaScript üksi teha oma to-do list veidi hästi disainitud. Siis me visata mõned jQuery, ja siis me läheme vaatama samal to-do list, lihtsalt ellu eri raamistikud, ja me arutame  plusse ja miinuseid mööda teed. Alustame rakendavate to-do list. Oletame, et me oleme andnud seda HTML. Ma teen seda veidi väiksem. Nagu näete, mul on väike kaudu, mis ütleb Todo ja väike kast kus Oskan kirjeldus todo ja siis uus kirje nupp, nii proovime sisestada uue ülesande, et seda nimekirja. Anna JavaScript raamistike seminar, ja ma olen tabanud uus objekt. Ma saan seda JavaScripti märguanne, mis ütleb, rakendada mulle. Me peame rakendama. Vaatame kood see nii HTML ja JavaScript. Siin on meie HTML. Nagu näete siin, siin on meie väike Todos päises. See oli julge asi tipus, ja siis on meil sisend kasti kohatäide, ja siis seal on teatud omadus seda nuppu, mis nõuab seda funktsiooni addtodo. Kas keegi tahab arvata, mis see on klikk tähendas? [Student kuuldamatu vastus] Hea, klikkide on omamoodi nagu juhul, nagu klikkides hiirt on lihtsalt sündmus, ja see, mida me teeme on meil sidumine korral klõpsake seda nuppu, et täita seda funktsiooni. Addtodo on see sündmus klõpsates et nupp. Nagu näete, kui ma vajutan uue elemendi nuppu klikkide korral vallandatakse, ja seda funktsiooni saab nn. Vaatame funktsiooni. Nagu näete, siin on mu JavaScript kood siiani. Mida ma pean ülaosas on ülemaailmne andmestruktuuri minu to-do list. Tundub, et massiivi. See on lihtsalt tühi massiiv. Ja siis on mul addtodo funktsioon, mida me nägime, ja ainult rida koodi on see märguanne. Ta hoiatab rakendada mind ja siis ma pean 2 ülesandeid käepärast. Pean lisama todo selle globaalse andmestruktuur, ja siis ma tahan juhtida tähelepanu to-do list. Midagi liiga fancy lihtsalt veel, aga JavaScript võite olla tuttavad, nii et ma lähen minema aeglaselt ja läbi põhialuste JavaScript niimoodi. Anname selle maha. Oletame, et kasutaja sisestab midagi selles kastis. Ma lihtsalt kirjutada midagi siia, teksti. Kuidas sorteerida juurdepääsu et tekst kaudu JavaScript? Pea meeles, et JavaScript on üks tema peamine omadus on, et see annab meile see programmiline juurdepääs DOM. See võimaldab meil kasutada elemente ja nende omadusi tegelik HTML. Kuidas me teeme, et paljaste luud JavaScript ei saa me tegelikult kasutada funktsiooni JavaScript nimetatakse getElementByID. Ma tahan, et salvestada teksti, mis on kirjutatud seal mõned muutuja, nii et ma lähen öelda uus muutuja nimega new_todo, ja ma lähen, et element. See on funktsioon,. GetElementByID. Ja nüüd ma saan element, mida ID, nii et mul on vaja ID selle teksti kasti nii et ma olen teinud selle ID new_todo_description. See, kuidas ma lähen, et saada element. See on minu argument, et seda funktsiooni, et määrata, millised ID saada. Ja nii see on element, HTML, ja see on omadusi. Olete näinud neid. Nad atribuute. Teksti atribuut element, mis salvestab kasutaja sisend on nn väärtus. Ma päästsin selle väärtus, tekstikasti nüüd selle muutuja nimega new_todo. Nüüd on mul programmiline juurdepääs selle muutuja, mis on selline lahe sest nüüd, mida ma teha saan, on mul selle lisada oma to-do list. Kuidas me seda teha Javascript ja ärge muretsege, kui te ei tunne seda, aga lihtsalt läbimas on todos.push sest see nimi minu maailma andmestruktuur siin, ja ma lähen suruda new_todo. See on suurepärane, sest nüüd olen lisanud selle minu JavaScript esindatus, et to-do list. Aga nüüd, kuidas ma saan selle tagasi HTML? Mul on vaja leida viis sorteerida ning lükake see tagasi. Teisisõnu, ma nagu pead tegema seda. Mida me teeme, on me juhtida to-do list. Mul on vaja uuendada muu HTML sellel lehel, ja nagu näete, ma olen jäänud see väike konteiner siin see jagaja leht, mille ID on todos, ja ma panen to-do list on. Esiteks ma kustutan ta sellepärast, ütleme, seal oli vana-do list on. Ma saan, et element, mille ID jälle ja ma olen tutvumise sisemine HTML selle elemendi, ja ma lähen selgitada, et. Kui me lahkusime see kood on, me tahaks näha tühja midagi seal, ja nüüd ma tahan alustada muutes oma uue to-do list. Ma põhimõtteliselt läheb hävitada oma to-do list. Nüüd sisemine HTML sees et todos div on täiesti selge, ja nüüd mul on vaja alustada lisades oma nimekirja. Esimene asi, mida ma tahan lisada tagasi on ebakorrapärane nimekirja tag, mis sisuliselt tähendab, et see on alguse Tavalise nimekirja. Nüüd iga element minu todos array Ma tahan printida sees, et HTML. Ma tahan lisada seda, et allosas see nimekiri. Just nagu C, saan kasutada silmus, ja ma lähen alustada alguses minu nimekirja kell element 0, ja ma lähen minema kogu tee pikkusest nimekirjast. Me saame tegelikult saada pikkus massiivi JavaScript kasutades pikkus vara. Põhimõtteliselt ma teen midagi väga sarnast sees siin välja trükkida, et element. Võin veel juurde todos div, sisemine HTML vara, et ja ma lähen, et lisada sellele uus nimekiri objekt ja mis saab olema ümbritsetud see li tag, ja ma lähen concatenate koos + operaatori ja mis on i-nda elemendi minu todos massiiv, ja siis ma lähen lähedal, et tag. Nüüd iga element lisame uue nimekirja kandmise. Ja siis kõik me tõesti vaja teha on sulgeda, et tag. Ma lihtsalt vaja sulgeda, et ebakorrapärane nimekirja tag. Kas sa saad tunda, kuidas see töötab? See avab kogu nimekirja. See lisab üksikud elemendid todos nimekiri loendisse ja siis, et sulgeb kogu nimekirja, ja see on minu addtodo funktsioon. Ma põhimõtteliselt alustada saada todo alates tekstikasti. Lisan, et todos massiiv, ja siis ma uuesti muuda to-do list. Nüüd ma saan lisada punkte oma nimekirja. See on omamoodi põnev, sest vaid paar rida koodi oleme põhiliselt tehtud to-do list, kus me saame lisada punkte. Great. See on omamoodi algteadmised JavaScript. Ärge muretsege liiga palju süntaks nüüd, kuid mõtle selle kontseptuaalselt. Meil oli mõned HTML. Meil oli tekstikasti lehel, et põhimõtteliselt lubatud kasutajatel sisestada ülesande kirje lisada. Ja siis me kasutasime JavaScript tõmmata et todo selle tekstikasti. Meil hoitakse selle sees JavaScript massiiv, mis on põhimõtteliselt nagu meie programmiline esindatus et to-do list, ja siis me trükitud välja. See on todos.js. See on selline lahe, aga kuidas me seda edasi? Noh, nagu näete, see ei ole nagu täielik to-do list. Näiteks ma ei saa tähistada kõik need teemad on puudulikud, nagu siis, kui ma tahtsin reprioritize teemad või kustutamiseks. See on okei, aga me ei tohi seda edasi. Ma ei kavatse rääkida liiga palju lisada lisafunktsioone, aga me võiks võtta, et veelgi. Räägime lisades veel üks omadus, et selle to-do list, mis läheb võimet kontrollida üksikute ülesannete kirje ja on see läbi kriipsutada, nii et põhimõtteliselt öelda, et ma olen teinud seda. Vaatame mõned kood, mis võivad täita seda. Pane tähele, mida ma teinud olen ülaosas on Olen lisanud uus globaalne massiiv nimega täielik. Ma põhiliselt kasutades seda salvestada kas need üksused to-do list on täielik või mitte. See on üks viis seda teha. Kui ma vaatan, rakendamise, ekraan, põhimõtteliselt, kui ma sisestan todo ja ma vajutan seda tumblernupu ta läbib läbi, nii et iga kirje selles loendis on kas täielik või ebatäielikud, ja ma kasutan teise massiivi esindada seda. Põhimõtteliselt iga todo selles todos massiivi seal on elemendi täielik array mis põhimõtteliselt näitab kas see on täielik või mitte. Olen olnud teha üsna vähe muudatusi selle koodi, et siin on meie addtodo funktsioon. Pane tähele, et siin ma olen surudes seda peale massiivi ja siis ma olen surudes 0 et täielik array, põhiliselt paralleelselt uue ülesande push öelda Ma lisada see toode, ja see on koos seda väärtust, mis tähendab, et see on puudulik. Ja siis ma nihutama to-do list. Nüüd teate Olen lisanud seda drawTodoList funktsioon. See võtab palju kood oli meil varem, Põhiliselt puhastab välja kasti ja seejärel juhib uus to-do list. Aga teate, et sees selle jaoks loop me teeme natuke rohkem nüüd. Me põhimõtteliselt kontrollida, kas toode vastab nda todo siin on lõppenud ja me käituvad erinevalt neist 2 juhul. Kui see on valmis, me liidame seda del tag, mis on põhimõtteliselt tee saad, et streik läbi mõju kriipsutatakse to-do list, kui see on lõpule viidud, ja kui see ei ole, et me ei kaasa ta. Ja nii, et selline hoolitseb, et ja see on üks viis selle saavutamiseks. Ja siis teate, kui kasutaja klõpsab üks neist me lülitada lõpetamist staatuse ta. Kui kasutaja klõpsab, me vastupidine kas see on täidetud või mitte, ja siis me värskendatakse seda. Sellist tööd. Meil on need funktsioonid, mis teostavad oma ülesandeid, ja see on okei. Kas on midagi, mida me teha saame paremini selle, kuigi? Teade meil need 2 globaalse massiivid. Kui see oli C, ja meil oli 2 massiivid sellist esindatud andmed, mis oli omamoodi seotud kuidagi milline oleks me kasutame C ühendada need 2 välja millekski, mida hõlmatakse nii infoväljad? Kas keegi tahab midagi soovitada? [Student kuuldamatu vastus] Täpselt nii, et me saaksime kasutada mingi struktuure, ja kui te arvate tagasi, ütleme, pset 3, mäletan pidime sõnastik ja seejärel oli meil kas sõna oli sõnastikku ja kõik see teave kokku panna sees mõnede andmete struktuuri. Üks asi, mida ma teha saan, see kood, et vältida neid 2 erinevat massiivid sarnaste tükki teavet saan ühendada need JavaScript objekti. Võtame pilk seda. Teatis Mul on ainult üks array ülaosas nüüd ja mida ma olen teinud on ja see on lihtsalt JavaScript süntaks omamoodi luues sõnasõnaline versioon objekt ja märgata on 2 omadusi, nii et meil on todo, ja see hoitakse koos, kas see on täielik või mitte. See on väga sarnane kood. Me kasutame JavaScript objektid. Selline parandab asju. Nagu nüüd, kõik need valdkonnad seotud teavet hoitakse kokku. Kui me läheme välja trükkida, saame juurdepääsu valdkondades. Märka, kuidas me teeme todos [i]. Täielik kontrollimise asemel täielik array eraldi, ja teate, kui me tahame saada ülesannete string me saada ülesannete kinnisvara selle ülesande, et selline mõistlik, sest iga kirje on nende omaduste midagi. See on todo, ja see on, kas see on täielik või mitte. Mitte liiga palju muudatusi seal funktsionaalselt, lihtsalt lisada mõned rohkem kood. See on parem mõned rindel, eks? Ma mõtlen, et me tegureid kavandamisel natuke. Nüüd on meil objektid põhiliselt kapseldada need andmed. Kas on veel midagi mida me teha saame siit poolest JavaScript? Nagu teate, et see kood siin saada sisemine HTML div on vähe, siis ma arvan, pikk. Seal document.getElementById ("todos"). InnerHTML. Üks asi, mida me võiksime teha, et see kood vaatama natuke sõbralikumaks nii et ma ei pea pidama kerimine vasakule ja paremale, edasi ja tagasi, on mulle kuluks raamatukogu nagu jQuery. Vaatame Seminar 2 ja see on sama kood, kuid ta on teinud koos jQuery. Sa ei pruugi olla liiga tuttav jQuery, kuid lihtsalt tean, et jQuery on omamoodi raamatukogu JavaScript mis muudab lihtsamaks teha asju nagu juurdepääs üksikuid elemente DOM. Siin asemel, et öelda document.getElementById ("todos"). InnerHTML Oskan kasutada palju puhtam viis jQuery, mis on lihtsalt kasutada valijad. Nagu näete, see kood ei saada veidi puhtam, väga sarnane funktsionaalselt, kuid see on idee. Me oleme näinud paar asja nii kaugele, nii alustasime lihtsalt toores JavaScript rakendamiseks. Oleme lisanud uusi funktsioone ja näitas, kuidas saame parandada seda just see, mida meil on JavaScript. Kas keegi näha kõiki raskusi selle kujundus? Nimelt, ma arvan, või ei pruugi olla raskusi aga oletame me ei tee to-do list projekti ja homme oleme otsustanud me tahtsime teha toidupoed nimekirja või ostunimekirja projekti. Palju need omadused on väga sarnased. Palju asju, mida me tahame saada välja JavaScript on väga levinud, ja see rõhutab vajadust mingi viis tehes seda lihtsam teha. Mul oli üles ehitada see kõik HTML juurdepääs, kõik see DOM juurdepääsu, nagu ma lähen esindavad Ülesanded selle mudeliga. Ja teate ma olen vastutav nii JavaScript arendaja pidamise HTML ja JavaScript, et mul on sünkroonis. Miski automaatselt tehtud, et JavaScript esindus või ülesannete nimekirja saada surunud läbi HTML. Miski jõustada et peale minu. Ma pidin kirjutama draw to-do list funktsioon. Ja see ei pruugi olla, ma mõtlen, et see on mõistlik seda teha, kuid see võib olla tüütu mõnikord. Kui teil on suurem projekt, mis võib olla raske. Raamistikud, mille üks eesmärk raamistike on lihtsustada, et protsess ja omamoodi tegur välja Nende ühine-Ma arvan, et võiks öelda, disaini mustrite et inimesed on tavaliselt mingi viis esindavad andmed, kas see on sõprade nimekirja, kas see kaart andmed või midagi või to-do list. Mõned inimesed on tavaliselt viis esindavad andmed, ja nad tavaliselt on vaja hoida seda teavet omamoodi sünkroonis vahel, mida kasutaja näeb mingi arvates räägi nii nagu mudel vaatamiseks töötleja et nägid loengus, ja siis mudel, mis antud juhul on see JavaScript massiivi. Raamistikud annavad meile viis seda probleemi lahendada. Nüüd võtame pilk rakendamise ülesanded raamistikus nimetatakse angularjs. See on see. Teade see sobib slide. Mul ei ole kerida vasakule ja paremale. See ilmselt ei ole suurt põhjust soovitame kasutada raamistikku, aga teate ma kunagi tutvumise üksikute HTML elemente siin? Kas ma olen kunagi laskumist DOM? Kas näete document.getElementById või midagi sellist? Ei, see on läinud. Nurga aitab meil hoida DOM ja meie JavaScript esindatus midagi liiki sünkroonis, nii et kui see ei ole js faili kui seal on kuidagi võimalik programmiliselt saada kõik, et HTML-sisu alates JavaScript kuidas hoiame seda sünkroonis? Kui see ei ole. Js faili, see sai olla HTML, eks? See on uus versioon HTML-faili, ja teate oleme lisanud palju siin. Teade seal need uued omadused, mis ütlevad ng-click ja ng-repeat. Nurga lähenemine selle probleemi lahendamiseks raskusi disain on põhimõtteliselt teha HTML palju võimsam. Nurga on tee, mis võimaldab teil teha HTML mõnevõrra rohkem väljendusrikas. Näiteks võin ma öelda, et ma lähen lips või siduda selle teksti kasti muutuva jooksul minu Nurga JavaScripti koodi. See ng-mudel teeb just seda. Et põhimõtteliselt ütleb, et objekt sees selle teksti kasti lihtsalt seostada, et koos muutuva new_todo_description jooksul JavaScript kood. See on väga võimas, sest ma ei pea otseselt minna DOM saada seda teavet. Mul ei ole öelda document.getElementById. Ma ei pea kasutama jQueries nagu DOM juurdepääs. Ma ei seosta seda muutuja, ja siis, kui ma saan muuta, et muutuja jooksul JavaScript see hoitakse sünkroonis HTML, et lihtsustab võttes minna edasi ja tagasi nende kahe vahel. Kas see on loogiline? Ja teate pole HTML koodi. Me oleme lihtsalt tehtud HTML võimsam, ja nüüd, näiteks saame teha asju nagu see, nagu siis, kui klõpsate seda, nimetame seda funktsiooni piires todos.js, ja me võiksime teha, et enne, kuid on ka teisi asju, nagu see ng-mudel, ja teate see ng-repeat. Mis sa arvad, et see teeb? Siin on meie ebakorrapärane nimekirja enne. Meil on ul silte kuid ma kunagi muuta see nimekiri sees JavaScript koodi? Ma ei kunagi otseselt muuta, et nimekirja. Kuidas see töötab? Noh, kuidas Nurga saavutatakse see on seda nimetatakse repeater. Põhimõtteliselt see ütleb, et ma tahan printida HTML iga todo sees minu todos massiivi. Toas todos.jr on todos array siin, ja see ütleb Nurga kõike läbi massiivi ja iga element näete Ma tahan, et sa printida HTML. See on omamoodi lahe, sest ma ei saa lihtsalt teha seda ilma et kirjutada silmus, mis jaoks to-do list, mis oli vaid 30 rida koodi pruugi olla kõige kasulikum asi, aga kui sul on suur projekt, see võib saada väga mugav. See on üks lahendus sellele probleemile, muutes HTML võimsam, ja mis võimaldab meil hoida JavaScript ja HTML sünkroonis. On ka teisi võimalusi, kuidas seda probleemi lahendada, ja mitte iga raames teeb. Mitte iga raames töötab selles suunas. Mõned raamistikud on erinevad lähenemised, ja te leiate, et te naudite kodeerimine ühes raamistik teiste üle. Vaatame veel üks. See on to-do list kodeeritud üles raames kutsutakse selgroog. Ma lähen läbi selle kiiresti. Ma alustada HTML enne kui me sinna minna. Üks hetk. Alustades HTML, nagu te teate, meie HTML on väga sarnane et see, mis oli enne, nii et ei ole liiga palju uut, et esiküljel. Aga meie js fail on veidi erinev. Selgroog omamoodi on see mõte, või põhineb idee et palju sellest, mida me teeme, ütleme, meie JavaScript projektide on mõelda mudelid ja kogusid need mudelid. See võiks olla näiteks, foto-ja fotokogu, või idee sõber ja kogud sõbrad. Ja Sageli, kui me programmeerimine JavaScript rakendusi me omamoodi esindama ideele kogumik sõbrad kuidagi JavaScript ja selgroog annab meile selle kihi peal JavaScript olemasolevate massiivide ja objektide teha võimsamad asjad selle kergemini. Siin ma olen määratletud Ülesanded mudeli ja sa ei pea muretsema liiga palju süntaks, kuid märkad, et mis see üks omadusi? See on vaikimisi valdkonnas. Selgroog võimaldab mul täpsustada juba ära nahkhiir iga uue ülesande, et ma luua läheb on need vaikimisi. Nüüd ma saan kohandada seda, kuid on võimalik määrata vaikimisi on kena, ja see on omamoodi mugav, sest see ei ole midagi, mis on nagu omane JavaScript, ja nüüd ma ei pea otseselt öelda, et todos on puudulikud. Võin öelda õigus ära nahkhiir et todos hakkavad olema märgitud puudulik. Teade siis mis see on? Nüüd on mul to-do list ja see kogumine. Teade valdkonnas, mis on seotud mis ütleb mudel todo. See on minu viis öelda selgroog, mis Ma mõelda kogumise individuaalse todos. See on põhimõtteliselt näidise mu programmi. Siin on mul idee kogumine, ja põhiliselt kirjeid et kogumine on kõik saab olema need todos, ja see on väga loomulik selles mõttes sest mul on todos, ja mul on nende kogumist. Vaatame veidi rohkem seda. Siin on selgroog vaade. Teine asi, et selgroog on öeldud vaid, et palju mudeleid, mis sa mõtled või isegi kollektsioonid hakkavad olema mingi võimalus on kuvatud. Meil on vaja muuta, et to-do list, ja kas ei oleks tore, kui me võiks iga mudeli või suhtleb iga mudel seda seisukohta mis võimaldab meil vist ühendada kaks koos? Kui enne oli meil kasutada silmus, mis jookseb läbi iga todo meie nimekirja ja siis välja printida siit saame põhimõtteliselt ühendada selle mudeliga. See on, et ülevaade. See on seotud todo leidsime varem. Nüüd iga todo on kuvatava või renderable selle, et ülevaade. Teade mõned väljad. Mis sa arvad, et see Muutujanimede on Muutujanimede: li? Tuletage meelde enne, kui me tahtsime muuta todo oleks meil selgelt siduda meie todos selle li tag. Nüüd me ütleme, et kui see todo läheb elama saab olema sees li tag. Ja nüüd me oleme ka ühendavate ürituste meie todos. Iga todo on see üks sündmus. Kui klõpsate päris palju tumblernupu, et see, mida ma tahan öelda on, siis põhimõtteliselt tähistada todo nagu vastand, mis see oli enne ja seejärel uuesti muuta taotluse. See on omamoodi sarnane kood enne. Mäletad, kui me märgistada see kas vastupidi või- ja siis me uuesti pidasid. Aga teate nüüd selle sündmuse varem midagi, mis oli HTML. Ta istus seal. Nupp oli klikkide. Kui klõpsate nuppu, millist ei kraami loodud, et todo olla puudulik. Siin me oleme seotud, et kui klõpsate et tumblernupu ja tagasikäik, kas see on sees või väljas selle seisukohaga. See on tore viis luua see sündmus, nii et see on väga tihedalt seotud Selle vaate ja nii teate selle ühe rohkem. Mul on see Render meetod, ja me ei pea minema läbi üksikasjad. See on selline sarnane sellega, mis meil oli enne, aga teate ma ei silmukoiminen läbi midagi. Ma ei prindi, et ul tag see on justkui ootus, et ma lähen printida kõik elemendid. Ma pakkudes funktsionaalsust muutes selle ühe ülesande objekt. See on väga võimas mõiste, sest põhimõtteliselt meie to-do list koosneb kõigi nende todos, ja kas me saame põhimõtteliselt määrata kuidas muuta üks neist todos siis saame meie võimas selgroog iseenesest muudaks kõik todos helistades Render meetod üksikute todos. See on mõiste, mis on kasulik siin. Nüüd on hea küsimus küsida, kuidas see taotlus on kokku pandud? Kuna meil on võime muuta üks todo, kuid kuidas me saame idee mitu todos? Võtame pilk seda. See on viimane osa. Teade meil to-do list silmas siin, ja teate see on ka vaade. Ja minna üle paar asja, see initsialiseerida meetod kutsutakse kui me esimest korda luua selle to-do list. Nagu näete, see on nagu luues to-do list ja seostama seda seisukohta. Ja siis ma lisada funktsioone siin nii põhimõtteliselt kui lisate item- see on sarnane AddItem meetod nägime enne- Ma lähen, et luua uus todo objekt ja teate ma olen tegelikult kutsudes see uus todo meetod, nii et see annab selgroog, ja ma ei liigu minu omadused siin. Ja nüüd iga todo et ma loon kasutades saad selle funktsionaalsus, mida me nägime enne. Teade Ma kliiring läbi tekstikasti enne-väike väike detail- ja siis ma olen lisades sellele kogumikule. See peaaegu tundub imelik, sest enne me lihtsalt pidin seda tegema, todos.push, ja siis me olime teinud, ja see võib tunduda keerulisem selle konkreetse projekti ja te võite leida, et selgroog või isegi Nurga või muu raamistiku ei sobi teie konkreetne projekt, kuid ma arvan, et see on oluline mõelda mida see tähendab suuremas mastaabis suuremate projektide puhul, sest kui meil oleks suurem projekt, kus me olime esindavad mõned tõesti keeruline kogu, midagi sügavamat kui lihtsalt to-do list, oletame sõprade nimekirja või midagi sellist, see võib tulla mugav sest me võiks korraldada meie koodi tõesti mugav viis, nii, et oleks lihtsam keegi kes tahtis tõstatada projekti tugineda. Te näete, et see pakub palju struktuuri. Ja siis ma helistan muudavad selle AddItem. Render, nagu näete, ja sa ei pea mõista seda täielikult süntaks, kuid põhimõtteliselt iga mudeli, et see saab helistada individuaalne Render meetod. See on omamoodi kus see pärineb. Olgem lihtsalt täpsustada, kuidas muuta üksikute todos, ja siis lähme liimi need kokku tervikuna. Aga see annab viis veevõtu sest ma võiks muuta seda, kuidas ma otsustan, et muuta individuaalsed todos, ja ma ei pea midagi muuta koodi. See on omamoodi lahe. Kas keegi on küsimusi JavaScript raamistike? [Student kuuldamatu küsimus] Oh, muidugi, see on suur küsimus. Küsimus oli, kuidas ma lisada raamistike? Enamik JavaScript raamistikud on põhimõtteliselt ainult js failid et saate lisada ülaosas oma kood. Teade peas osa oma HTML on mul kõik need script silte ja lõplik script tag on kood, mida me oleme kirjutanud. Ja siis 3 raames koodid on lihtsalt ka script sildid. Ma olen ka neid, mida nimetatakse CDN, mis võimaldab mul saada kuskilt mujalt seda sel hetkel kuid iga raamistik on see-saab päris palju leida sisu konkreetse JavaScript raamatukogu saadaval mõned CDN või midagi sellist, ja siis võid lisada neid script sildid. Kas see on loogiline? Lahe. Need on 2 erinevat lähenemist. Need ei ole ainult lähenemisviisid selle probleemi lahendamiseks. Seal on palju erinevaid asju, keegi võiks teha, ja seal on palju raamistike seal. Nurga ja selgroog ei ütle kogu lugu. Õnn oma lõpliku projekti ja tänan teid väga palju. [CS50.TV]