Dalam proses melaksanakan fungsi bahagian hadapan, fungsi carian adalah keperluan biasa. Sebagai rangka kerja bahagian hadapan yang popular, Vue juga boleh menyokong pelaksanaan fungsi carian dengan baik. Artikel ini akan memperkenalkan cara untuk melaksanakan fungsi carian dalam Vue dan memberikan contoh kod khusus.
1. Persediaan
Sebelum melaksanakan fungsi carian, kita perlu menyediakan sumber data, iaitu beberapa data yang perlu dicari. Dalam contoh artikel ini, kami menggunakan tatasusunan yang mengandungi maklumat buku sebagai sumber data, dengan format berikut:
books: [ { id: 1, title: 'Vue.js实战', author: '梁灏', publisher: '人民邮电出版社' }, { id: 2, title: 'JavaScript高级程序设计', author: 'Nicholas C.Zakas', publisher: '人民邮电出版社' }, { id: 3, title: '深入浅出Node.js', author: '朴灵', publisher: '人民邮电出版社' }, // 更多书籍信息... ]
Selain menyediakan sumber data, kami juga perlu menambah elemen input pada Vue untuk menerima input pengguna.
<input v-model="keyword" placeholder="请输入关键字进行搜索">
Antaranya, arahan v-model
ialah cara untuk melaksanakan pengikatan data dua hala dalam Vue Ia menggabungkan nilai yang dimasukkan oleh pengguna dalam elemen input dengan v-model
指令是Vue中实现双向数据绑定的一种方式,它将input元素中用户输入的值与Vue实例中的keyword
属性进行绑定,实现数据的同步更新。
二、使用computed实现搜索
Vue提供了一种特殊的属性computed
,可以方便地对数据进行处理,并在数据发生改变时自动更新。我们可以使用computed
来实现搜索功能。
在本例中,我们可以定义一个computed属性filteredBooks
,用于存储搜索之后的结果。
computed: { filteredBooks() { return this.books.filter((book) => { return book.title.indexOf(this.keyword) !== -1 || book.author.indexOf(this.keyword) !== -1 || book.publisher.indexOf(this.keyword) !== -1; }) } }
在上述代码中,我们将搜索关键字this.keyword
与每一本书籍的标题、作者和出版社进行比对,如果匹配成功则返回对应的书籍信息。这里使用了数组的filter()
方法,它会返回一个新数组,包含所有满足条件的元素。
最后,我们可以在页面中使用v-for
指令循环渲染filteredBooks
数组中的每一个元素。
<ul> <li v-for="book in filteredBooks" :key="book.id"> {{ book.title }} - {{ book.author }} - {{ book.publisher }} </li> </ul>
在上述代码中,v-for
指令会将filteredBooks
数组中的每一个元素渲染为一个li元素,并绑定一个唯一的key值。这里我们使用每一本书籍的id
作为key值,保证每一个元素的唯一性。
三、使用watch实现搜索
除了computed属性外,Vue还提供了一种叫做watch
的属性,可以实现“监听”数据的变化,并在数据变化时触发相应的操作。我们也可以利用watch
属性来实现搜索功能。
在本例中,我们可以定义一个watch属性searchResult
,在keyword
属性变化时更新搜索结果。
watch: { keyword() { this.searchResult = this.books.filter((book) => { return book.title.indexOf(this.keyword) !== -1 || book.author.indexOf(this.keyword) !== -1 || book.publisher.indexOf(this.keyword) !== -1; }) } }
在上述代码中,keyword
属性变化时会触发watch属性中的函数。我们将新的搜索结果存储在searchResult
属性中,并在页面中使用v-for
computed
untuk melaksanakan fungsi carian. Dalam contoh ini, kita boleh mentakrifkan atribut yang dikira filteredBooks
untuk menyimpan hasil selepas carian. <ul> <li v-for="book in searchResult" :key="book.id"> {{ book.title }} - {{ book.author }} - {{ book.publisher }} </li> </ul>Dalam kod di atas, kami membandingkan kata kunci carian
filter()
tatasusunan digunakan di sini, yang akan mengembalikan tatasusunan baharu yang mengandungi semua elemen yang memenuhi syarat. Akhir sekali, kita boleh menggunakan arahan v-for
dalam halaman untuk melingkari setiap elemen dalam tatasusunan filteredBooks
. Dalam kod di atas, arahan<input v-model="keyword" placeholder="请输入关键字进行搜索"><script> export default { data() { return { books: [ { id: 1, title: 'Vue.js实战', author: '梁灏', publisher: '人民邮电出版社' }, { id: 2, title: 'JavaScript高级程序设计', author: 'Nicholas C.Zakas', publisher: '人民邮电出版社' }, { id: 3, title: '深入浅出Node.js', author: '朴灵', publisher: '人民邮电出版社' }, // 更多书籍信息... ], keyword: '' } }, computed: { filteredBooks() { return this.books.filter((book) => { return book.title.indexOf(this.keyword) !== -1 || book.author.indexOf(this.keyword) !== -1 || book.publisher.indexOf(this.keyword) !== -1; }) } }, /*watch: { keyword() { this.searchResult = this.books.filter((book) => { return book.title.indexOf(this.keyword) !== -1 || book.author.indexOf(this.keyword) !== -1 || book.publisher.indexOf(this.keyword) !== -1; }) } }*/ } </script>
- {{ book.title }} - {{ book.author }} - {{ book.publisher }}
v-for
akan menjadikan setiap elemen dalam tatasusunan filteredBooks
sebagai elemen li dan mengikat nilai kunci unik. Di sini kami menggunakan id
setiap buku sebagai nilai utama untuk memastikan keunikan setiap elemen. 🎜🎜3 Gunakan jam tangan untuk melaksanakan carian🎜🎜Selain atribut yang dikira, Vue juga menyediakan atribut yang dipanggil watch
, yang boleh "memantau" perubahan data dan mencetuskan tindakan yang sepadan apabila data itu beroperasi . Kami juga boleh menggunakan atribut watch
untuk melaksanakan fungsi carian. 🎜🎜Dalam contoh ini, kita boleh mentakrifkan atribut jam tangan searchResult
untuk mengemas kini hasil carian apabila atribut keyword
berubah. 🎜rrreee🎜Dalam kod di atas, apabila atribut keyword
berubah, fungsi dalam atribut jam tangan akan dicetuskan. Kami menyimpan hasil carian baharu dalam atribut searchResult
dan gelung melalui halaman untuk memaparkan hasil carian menggunakan arahan v-for
. 🎜rrreee🎜4. Lengkapkan kod sampel🎜🎜Kini, kami telah berjaya melaksanakan fungsi carian dalam Vue. Di bawah ialah contoh kod lengkap. 🎜rrreee🎜Di atas ialah kod sampel yang menggunakan atribut yang dikira untuk melaksanakan fungsi carian. Jika anda perlu menggunakan atribut jam tangan untuk melaksanakan fungsi carian, cuma nyahkomen kod yang berkaitan. 🎜🎜Ringkasan🎜🎜Artikel ini memperkenalkan cara melaksanakan fungsi carian dalam Vue dan menyediakan contoh kod khusus. Sama ada anda menggunakan atribut yang dikira atau atribut jam tangan, fungsi carian boleh dilaksanakan dengan berkesan. Dalam aplikasi praktikal, kita boleh memilih kaedah yang sesuai mengikut keperluan khusus untuk mencapai pengalaman pengguna yang lebih baik. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi carian dalam Vue. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Vue.js disepadukan dengan tumpuan teknologi front-end untuk meningkatkan kecekapan pembangunan dan pengalaman pengguna. 1) Alat Pembinaan: Mengintegrasikan dengan Webpack dan Rollup untuk mencapai pembangunan modular. 2) Pengurusan Negeri: Bersepadu dengan VUEX untuk menguruskan status aplikasi yang kompleks. 3) Routing: Mengintegrasikan dengan Vuerouter untuk merealisasikan penghalaan aplikasi tunggal halaman. 4) Preprocessor CSS: Menyokong SASS dan kurang untuk meningkatkan kecekapan pembangunan gaya.

Netflix memilih React untuk membina antara muka penggunanya kerana reka bentuk komponen React dan mekanisme DOM maya dapat mengendalikan antara muka yang kompleks dan kemas kini yang kerap. 1) Reka bentuk berasaskan komponen membolehkan Netflix memecah antara muka ke dalam widget yang boleh diurus, meningkatkan kecekapan pembangunan dan pemeliharaan kod. 2) Mekanisme DOM maya memastikan kelancaran dan prestasi tinggi antara muka pengguna Netflix dengan meminimumkan operasi DOM.

Vue.js disukai oleh pemaju kerana mudah digunakan dan berkuasa. 1) Sistem pengikat data responsifnya secara automatik mengemas kini paparan. 2) Sistem komponen meningkatkan kebolehgunaan semula dan mengekalkan kod. 3) Ciri -ciri pengkomputeran dan pendengar meningkatkan kebolehbacaan dan prestasi kod. 4) Menggunakan vuedevtools dan memeriksa kesilapan konsol adalah teknik debugging biasa. 5) Pengoptimuman Prestasi termasuk penggunaan atribut utama, atribut yang dikira dan komponen-komponen Alive. 6) Amalan terbaik termasuk penamaan komponen yang jelas, penggunaan komponen fail tunggal dan penggunaan cangkuk kitaran hidup yang rasional.

Vue.js adalah rangka kerja JavaScript yang progresif yang sesuai untuk membina aplikasi front-end yang cekap dan boleh dipelihara. Ciri -ciri utamanya termasuk: 1. Pengikatan data responsif, 2. Pembangunan Komponen, 3. Dom maya. Melalui ciri -ciri ini, Vue.js memudahkan proses pembangunan, meningkatkan prestasi aplikasi dan mengekalkan, menjadikannya sangat popular dalam pembangunan web moden.

Vue.js dan bertindak balas masing -masing mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keadaan pasukan. 1) vue.js sesuai untuk projek kecil dan pemula kerana kesederhanaan dan mudah digunakan; 2) React sesuai untuk projek besar dan UI yang kompleks kerana reka bentuk ekosistem dan komponennya yang kaya.

Vue.js meningkatkan pengalaman pengguna melalui pelbagai fungsi: 1. Sistem responsif menyedari maklum balas data masa nyata; 2. Pembangunan komponen meningkatkan kebolehgunaan semula kod; 3. Vuerouter menyediakan navigasi lancar; 4. Data dinamik mengikat dan animasi peralihan meningkatkan kesan interaksi; 5. Mekanisme pemprosesan ralat memastikan maklum balas pengguna; 6. Pengoptimuman prestasi dan amalan terbaik meningkatkan prestasi aplikasi.

Peranan vue.js dalam pembangunan web adalah bertindak sebagai rangka kerja JavaScript yang progresif yang memudahkan proses pembangunan dan meningkatkan kecekapan. 1) Ia membolehkan pemaju memberi tumpuan kepada logik perniagaan melalui pengikatan data yang responsif dan pembangunan komponen. 2) Prinsip kerja Vue.js bergantung kepada sistem responsif dan DOM maya untuk mengoptimumkan prestasi. 3) Dalam projek sebenar, adalah amalan biasa untuk menggunakan VUEX untuk menguruskan keadaan global dan mengoptimumkan respons data.

Vue.js adalah kerangka JavaScript yang progresif yang dikeluarkan oleh You Yuxi pada tahun 2014 untuk membina antara muka pengguna. Kelebihan terasnya termasuk: 1. Pengikatan data responsif, Paparan Kemas Kini Automatik Perubahan Data; 2. Pembangunan komponen, UI boleh dibahagikan kepada komponen bebas dan boleh diguna semula.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa