Vue ialah rangka kerja JavaScript popular yang menyediakan cara yang sangat mudah dan fleksibel untuk mencipta paparan responsif dan dinamik. Sintaks dan arahan templat dalam Vue menjadikannya lebih mudah untuk membuat paparan yang kompleks. Walau bagaimanapun, kadangkala kita memerlukan cara yang lebih fleksibel untuk menjana paparan, dalam hal ini kita perlu menggunakan fungsi render yang disediakan oleh Vue.
Fungsi pemaparan Vue ialah fungsi JavaScript yang menerima fungsi "createElement" sebagai parameter dan digunakan untuk menjana DOM maya (Virtual DOM). DOM maya ialah perwakilan dalam memori yang boleh digunakan untuk menyatakan struktur DOM, termasuk jenis nod, atribut dan subelemen. Menggunakan fungsi pemaparan, anda tidak perlu menulis templat Vue, tetapi menjana secara langsung DOM maya yang dikembalikan dalam fungsi pemaparan melalui kod JavaScript.
Berikut ialah contoh mudah yang menunjukkan cara menggunakan fungsi pemaparan Vue untuk mencipta jadual HTML ringkas:
Vue.component('my-table', { render: function(createElement) { return createElement('table', [ createElement('tr', [ createElement('th', 'First Name'), createElement('th', 'Last Name') ]), createElement('tr', [ createElement('td', 'John'), createElement('td', 'Doe') ]), createElement('tr', [ createElement('td', 'Jane'), createElement('td', 'Doe') ]) ]); } }); new Vue({ el: '#app' });
Dalam contoh ini, kami mentakrifkan jadual bernama "meja saya" komponen Vue, fungsi pemaparannya mengembalikan DOM maya yang mengandungi elemen jadual dan elemen anak lain. Kita boleh menggunakan fungsi "createElement" untuk mencipta beberapa elemen HTML mudah, seperti jadual, baris, lajur, dsb. Parameter pertama fungsi ini ialah nama label nod, dan parameter lain boleh menjadi atribut nod, subelemen, dsb.
Kita boleh menggunakan komponen ini dengan cara berikut:
<div id="app"> <my-table></my-table> </div>
Dengan cara ini, jadual boleh dijana secara dinamik menggunakan mekanisme templat Vue.
Pada masa yang sama, fungsi pemaparan Vue boleh melaksanakan fungsi yang lebih kompleks, seperti pemaparan bersyarat, pemaparan gelung, pemaparan bersarang, dsb. Berikut ialah contoh komponen dialog:
Vue.component('dialog', { props: ['title', 'visible', 'onClose'], render: function(createElement) { var self = this; var closeButton = createElement('button', { on: { click: function() { self.onClose(); } } }, 'Close'); var dialog = createElement('div', { style: { display: self.visible ? 'block' : 'none', padding: '10px', border: '1px solid #ccc', position: 'fixed', top: 0, left: 0, right: 0, bottom: 0, zIndex: 9999, backgroundColor: 'rgba(0, 0, 0, 0.5)' } }, [ createElement('h2', self.title), self.$slots.default, closeButton ]); return dialog; } }); new Vue({ el: '#app', data: { showDialog: false }, methods: { closeDialog: function() { this.showDialog = false; } } });
Dalam contoh ini, kami mentakrifkan komponen Vue bernama "dialog", yang menerima tiga sifat: tajuk, sama ada untuk memaparkan dan menutup acara. Dalam fungsi render, kami menggunakan fungsi "createElement" untuk menjana DOM maya yang mengandungi tajuk dialog, kandungan dan butang tutup. Antaranya, "$slots.default" ialah atribut khas dalam Vue, digunakan untuk memaparkan elemen anak komponen.
Kami boleh menggunakan komponen ini dengan cara berikut:
<div id="app"> <button v-on:click="showDialog = true">Show Dialog</button> <dialog v-bind:title="'My Dialog'" v-bind:visible="showDialog" v-bind:onClose="closeDialog"> <p>This is the content of my dialog.</p> </dialog> </div>
Dengan cara ini, kami boleh menjana paparan secara dinamik melalui kod JavaScript. Fungsi pemaparan Vue menyediakan cara yang sangat fleksibel dan berkuasa untuk mencipta paparan responsif dan dinamik yang boleh memenuhi pelbagai keperluan yang kompleks.
Atas ialah kandungan terperinci Pengenalan kepada kaedah menjana pandangan menggunakan fungsi render dalam dokumentasi Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!