Rumah hujung hadapan web tutorial js Beberapa cadangan untuk menggunakan rangka kerja Backbone.js JavaScript_Pengetahuan asas

Beberapa cadangan untuk menggunakan rangka kerja Backbone.js JavaScript_Pengetahuan asas

May 16, 2016 pm 03:15 PM
backbone dom javascript

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();

Salin selepas log masuk

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);

Salin selepas log masuk

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);

Salin selepas log masuk

Pendekatan yang lebih baik ialah mencetuskan perubahan hanya apabila diperlukan.

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

Salin selepas log masuk

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);

Salin selepas log masuk


5. Simpan tulisan berantai

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

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

Salin selepas log masuk

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();

Salin selepas log masuk

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');

Salin selepas log masuk

Sila hadkan pemilihan elemen DOM kepada domain anda sendiri:

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

Salin selepas log masuk

如果你需要更新一个别的不同的视图,只要触发一个事件,让别的视图去做。你也可以使用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

Salin selepas log masuk

还有一件事

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

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

Kenyataan Laman Web ini
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

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem pengecaman pertuturan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 pm 02:54 PM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian Pengenalan: Dengan perkembangan teknologi yang berterusan, teknologi pengecaman pertuturan telah menjadi bahagian penting dalam bidang kecerdasan buatan. Sistem pengecaman pertuturan dalam talian berdasarkan WebSocket dan JavaScript mempunyai ciri kependaman rendah, masa nyata dan platform merentas, dan telah menjadi penyelesaian yang digunakan secara meluas. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem pengecaman pertuturan dalam talian.

WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata WebSocket dan JavaScript: teknologi utama untuk melaksanakan sistem pemantauan masa nyata Dec 17, 2023 pm 05:30 PM

WebSocket dan JavaScript: Teknologi utama untuk merealisasikan sistem pemantauan masa nyata Pengenalan: Dengan perkembangan pesat teknologi Internet, sistem pemantauan masa nyata telah digunakan secara meluas dalam pelbagai bidang. Salah satu teknologi utama untuk mencapai pemantauan masa nyata ialah gabungan WebSocket dan JavaScript. Artikel ini akan memperkenalkan aplikasi WebSocket dan JavaScript dalam sistem pemantauan masa nyata, memberikan contoh kod dan menerangkan prinsip pelaksanaannya secara terperinci. 1. Teknologi WebSocket

Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata Dec 17, 2023 pm 12:09 PM

Pengenalan kepada cara menggunakan JavaScript dan WebSocket untuk melaksanakan sistem pesanan dalam talian masa nyata: Dengan populariti Internet dan kemajuan teknologi, semakin banyak restoran telah mula menyediakan perkhidmatan pesanan dalam talian. Untuk melaksanakan sistem pesanan dalam talian masa nyata, kami boleh menggunakan teknologi JavaScript dan WebSocket. WebSocket ialah protokol komunikasi dupleks penuh berdasarkan protokol TCP, yang boleh merealisasikan komunikasi dua hala masa nyata antara pelanggan dan pelayan. Dalam sistem pesanan dalam talian masa nyata, apabila pengguna memilih hidangan dan membuat pesanan

Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Bagaimana untuk melaksanakan sistem tempahan dalam talian menggunakan WebSocket dan JavaScript Dec 17, 2023 am 09:39 AM

Cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian Dalam era digital hari ini, semakin banyak perniagaan dan perkhidmatan perlu menyediakan fungsi tempahan dalam talian. Adalah penting untuk melaksanakan sistem tempahan dalam talian yang cekap dan masa nyata. Artikel ini akan memperkenalkan cara menggunakan WebSocket dan JavaScript untuk melaksanakan sistem tempahan dalam talian dan memberikan contoh kod khusus. 1. Apakah itu WebSocket? WebSocket ialah kaedah dupleks penuh pada sambungan TCP tunggal.

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Dec 17, 2023 pm 05:13 PM

JavaScript dan WebSocket: Membina sistem ramalan cuaca masa nyata yang cekap Pengenalan: Hari ini, ketepatan ramalan cuaca sangat penting kepada kehidupan harian dan membuat keputusan. Apabila teknologi berkembang, kami boleh menyediakan ramalan cuaca yang lebih tepat dan boleh dipercayai dengan mendapatkan data cuaca dalam masa nyata. Dalam artikel ini, kita akan mempelajari cara menggunakan teknologi JavaScript dan WebSocket untuk membina sistem ramalan cuaca masa nyata yang cekap. Artikel ini akan menunjukkan proses pelaksanaan melalui contoh kod tertentu. Kami

Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Tutorial JavaScript Mudah: Cara Mendapatkan Kod Status HTTP Jan 05, 2024 pm 06:08 PM

Tutorial JavaScript: Bagaimana untuk mendapatkan kod status HTTP, contoh kod khusus diperlukan: Dalam pembangunan web, interaksi data dengan pelayan sering terlibat. Apabila berkomunikasi dengan pelayan, kami selalunya perlu mendapatkan kod status HTTP yang dikembalikan untuk menentukan sama ada operasi itu berjaya dan melaksanakan pemprosesan yang sepadan berdasarkan kod status yang berbeza. Artikel ini akan mengajar anda cara menggunakan JavaScript untuk mendapatkan kod status HTTP dan menyediakan beberapa contoh kod praktikal. Menggunakan XMLHttpRequest

Bagaimana untuk menggunakan insertBefore dalam javascript Bagaimana untuk menggunakan insertBefore dalam javascript Nov 24, 2023 am 11:56 AM

Penggunaan: Dalam JavaScript, kaedah insertBefore() digunakan untuk memasukkan nod baharu dalam pepohon DOM. Kaedah ini memerlukan dua parameter: nod baharu untuk dimasukkan dan nod rujukan (iaitu nod di mana nod baharu akan dimasukkan).

JavaScript dan WebSocket: Membina sistem pemprosesan imej masa nyata yang cekap JavaScript dan WebSocket: Membina sistem pemprosesan imej masa nyata yang cekap Dec 17, 2023 am 08:41 AM

JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas dalam pembangunan web, manakala WebSocket ialah protokol rangkaian yang digunakan untuk komunikasi masa nyata. Menggabungkan fungsi berkuasa kedua-duanya, kami boleh mencipta sistem pemprosesan imej masa nyata yang cekap. Artikel ini akan memperkenalkan cara untuk melaksanakan sistem ini menggunakan JavaScript dan WebSocket, dan memberikan contoh kod khusus. Pertama, kita perlu menjelaskan keperluan dan matlamat sistem pemprosesan imej masa nyata. Katakan kita mempunyai peranti kamera yang boleh mengumpul data imej masa nyata

See all articles