cari
Rumahhujung hadapan webtutorial jsBeberapa cadangan untuk menggunakan rangka kerja Backbone.js JavaScript_Pengetahuan asas

Backbone menyediakan struktur model, koleksi dan paparan untuk aplikasi Javascript yang kompleks. Model ini digunakan untuk mengikat data nilai kunci dan peristiwa tersuai; koleksi dilengkapi dengan API yang kaya dengan fungsi terbilang;
Apabila membangunkan aplikasi web yang mengandungi banyak JavaScript, salah satu perkara pertama yang perlu anda lakukan ialah berhenti menambahkan data pada objek DOM. Cipta aplikasi Javascript dengan pemilih jQuery yang kompleks dan fungsi panggil balik, termasuk mengekalkan penyegerakan antara UI HTML, logik Javascript dan data, tanpa sebarang kerumitan. Tetapi untuk aplikasi pelanggan, seni bina yang baik selalunya mempunyai banyak faedah.
Backbone membentangkan data sebagai model, dan anda boleh mencipta model, mengesahkan dan memusnahkannya, malah menyimpannya ke pelayan. Apabila perubahan dalam UI menyebabkan sifat model berubah, model akan mencetuskan peristiwa "perubahan" semua paparan yang memaparkan data model akan menerima pemberitahuan acara ini, dan kemudian paparan akan dipaparkan semula. Anda tidak perlu mencari DOM untuk elemen dengan id khusus untuk mengemas kini HTML secara manual. —Setelah model berubah, paparan berubah secara automatik.
backbone.js menyediakan rangka kerja pembangunan web, menggunakan Model untuk mengikat nilai kunci dan pemprosesan acara tersuai, menggunakan Koleksi untuk menyediakan set API yang kaya untuk fungsi penghitungan dan menggunakan Views untuk pemprosesan acara dan penyepaduan dengan Aplikasi sedia ada berinteraksi melalui JSON RESTful antara muka Ia adalah rangka kerja js berdasarkan jquery dan garis bawah.

Tulang belakang tidak berpendirian secara semula jadi. Idea paling asas yang anda dapat daripada dokumentasi ialah: gunakan alatan yang disediakan oleh backbone.js untuk melakukan apa sahaja yang anda mahu.

Ini bagus kerana terdapat begitu banyak kes penggunaan yang berbeza dan sangat mudah untuk mula menulis apl. Pendekatan ini mungkin menghalang kita daripada membuat kesilapan sesedikit mungkin semasa memulakan.

Apabila ada sesuatu yang salah, kita perlu menemuinya dan mencari jalan untuk membetulkannya.

Petua berikut boleh membantu anda mengelakkan ralat yang kami hadapi semasa membangunkan Backbone.js:

1. Paparan Kurang Data

Data adalah milik model (model) bukan pandangan. Lain kali anda mendapati diri anda menyimpan data dalam paparan (atau lebih teruk lagi: dalam DOM), alihkannya ke dalam model dengan segera.

Jika anda tidak mempunyai model, mencipta model adalah sangat mudah:

this.viewState = new Backbone.Model();

Tiada perkara lain yang perlu dilakukan.

Anda boleh mendengar acara perubahan pada data anda dan juga menyegerakkannya dalam talian dengan pelayan anda.

2. Acara DOM hanya menukar model

Apabila peristiwa DOM dicetuskan, seperti mengklik butang, jangan biarkan ia mengubah paparan itu sendiri. Tukar model ini.

Menukar DOM tanpa mengubah keadaan bermakna keadaan anda masih disimpan dalam DOM. Peraturan ini memastikan anda konsisten.

Jika tepi "Muat Lagi" diklik, jangan kembangkan paparan, cuma tukar model:

this.viewState.set('readMore', true);

Baiklah, tetapi bila pandangan berubah? Soalan yang bagus, dijawab oleh peraturan seterusnya.

3.DOM hanya berubah apabila model berubah

Acara yang menakjubkan, sila gunakannya. Cara paling mudah ialah mencetuskannya selepas setiap perubahan.

this.listenTo(this.stateModel, 'change', this.render);

Pendekatan yang lebih baik ialah mencetuskan perubahan hanya apabila diperlukan.

this.listenTo(this.stateModel, 'change:readMore', this.renderReadMore);

Pandangan ini akan sentiasa konsisten dengan modelnya. Paparan ini akan sentiasa dikemas kini tidak kira bagaimana model berubah: sebagai tindak balas kepada tindakan daripada antara muka perintah atau maklumat penyahpepijatan.

4. Perkara yang terikat mesti tidak terikat

Apabila paparan dialih keluar daripada DOM, menggunakan kaedah 'alih keluar', ia mesti dinyahikat daripada semua peristiwa terikat.

Jika anda menggunakan 'on' untuk mengikat, tanggungjawab anda ialah menggunakan 'off' untuk membuka ikatan. Tanpa menyahikat, pengumpul memori tidak boleh membebaskan memori, menyebabkan prestasi aplikasi anda menurun.

Di sinilah 'listenTo' berasal. Ia menjejaki pengikatan dan pembebasan pandangan. Backbone akan melakukan 'stopListening' sebelum mengalihkannya dari DOM.

// Ok:
this.stateModel.on('change:readMore', this.renderReadMore, this);
 
// 神奇:
this.listenTo(this.stateModel, 'change:readMore', this.renderReadMore);


5. Simpan tulisan berantai

Sentiasa kembalikan 'ini' daripada kaedah render dan alih keluar. Ini membolehkan anda menulis rantai kaedah.

view.render().$el.appendTo(otherElement);

Ini kaedahnya, jangan patahkan.

6 Acara lebih baik daripada panggilan balik

Menunggu acara respons adalah lebih baik daripada menelefon semula

Model tulang belakang mencetuskan peristiwa 'penyegerakan' dan 'ralat' secara lalai, jadi acara ini boleh digunakan dan bukannya panggilan balik. Pertimbangkan dua senario ini.

model.fetch({
 success: handleSuccess,
 error: handleError
});
//这种更好:
view.listenTo(model, 'sync', handleSuccess);
view.listenTo(model, 'error', handleError);
model.fetch();

Tidak kira bila model diambil, handleSucess/handleError akan dipanggil.

7. Paparan mempunyai skop

Pandangan tidak boleh memanipulasi DOM selain daripada dirinya sendiri.

paparan akan merujuk elemen DOMnya sendiri, seperti 'el' atau objek jquery '$el'

Ini bermakna anda tidak boleh menggunakan jQuery secara langsung:

$('.text').html('Thank you');

Sila hadkan pemilihan elemen DOM kepada domain anda sendiri:

this.$('.text').html('Thank you');
 
// 这等价于
// this.$el.find('.text').html('Thank you');

如果你需要更新一个别的不同的视图,只要触发一个事件,让别的视图去做。你也可以使用Backbone的全局Pub/Sub系统。

例如,我们阻止页面滚动:

var BodyView = Backbone.View.extend({
 initialize: function() {
  this.listenTo(Backbone, 'prevent-scroll', this.preventScroll);
 },
 
 preventScroll: function(prevent) {
  // .prevent-scroll 有下面的CSS规则: overflow: hidden;
  this.$el.toggleClass('prevent-scroll', prevent);
 }
});
 
// 现在从任何其他地方调用:
Backbone.trigger('prevent-scroll', true);  // 阻止 scrolling
Backbone.trigger('prevent-scroll', false); // 允许 scrolling

还有一件事

只要读读backbone的源代码,你会学到更多。看一看backbone.js的源代码,然后看看这些神奇的事情是怎么实现的。这个库非常小,而且可读性很好,整个读完不会超过10分钟的。

这些小贴士帮助我们写干净的,更好的可读的代码。

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
JavaScript dan Web: Fungsi teras dan kes penggunaanJavaScript dan Web: Fungsi teras dan kes penggunaanApr 18, 2025 am 12:19 AM

Penggunaan utama JavaScript dalam pembangunan web termasuk interaksi klien, pengesahan bentuk dan komunikasi tak segerak. 1) kemas kini kandungan dinamik dan interaksi pengguna melalui operasi DOM; 2) pengesahan pelanggan dijalankan sebelum pengguna mengemukakan data untuk meningkatkan pengalaman pengguna; 3) Komunikasi yang tidak bersesuaian dengan pelayan dicapai melalui teknologi Ajax.

Memahami Enjin JavaScript: Butiran PelaksanaanMemahami Enjin JavaScript: Butiran PelaksanaanApr 17, 2025 am 12:05 AM

Memahami bagaimana enjin JavaScript berfungsi secara dalaman adalah penting kepada pemaju kerana ia membantu menulis kod yang lebih cekap dan memahami kesesakan prestasi dan strategi pengoptimuman. 1) aliran kerja enjin termasuk tiga peringkat: parsing, penyusun dan pelaksanaan; 2) Semasa proses pelaksanaan, enjin akan melakukan pengoptimuman dinamik, seperti cache dalam talian dan kelas tersembunyi; 3) Amalan terbaik termasuk mengelakkan pembolehubah global, mengoptimumkan gelung, menggunakan const dan membiarkan, dan mengelakkan penggunaan penutupan yang berlebihan.

Python vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanPython vs JavaScript: Keluk Pembelajaran dan Kemudahan PenggunaanApr 16, 2025 am 12:12 AM

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python vs JavaScript: Komuniti, Perpustakaan, dan SumberPython vs JavaScript: Komuniti, Perpustakaan, dan SumberApr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Dari C/C ke JavaScript: Bagaimana semuanya berfungsiDari C/C ke JavaScript: Bagaimana semuanya berfungsiApr 14, 2025 am 12:05 AM

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript: Membandingkan PelaksanaanEnjin JavaScript: Membandingkan PelaksanaanApr 13, 2025 am 12:05 AM

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Beyond the Browser: JavaScript di dunia nyataBeyond the Browser: JavaScript di dunia nyataApr 12, 2025 am 12:06 AM

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Membina aplikasi SaaS Multi-penyewa dengan Next.js (Integrasi Backend)Apr 11, 2025 am 08:23 AM

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)