


Penjelasan mendalam tentang cara melaksanakan fungsi carian dalam program mini
Bagaimana untuk melaksanakan fungsi carian biasa program mini? Artikel berikut akan membawa anda langkah demi langkah untuk memahami kaedah melaksanakan fungsi carian dalam program mini Saya harap ia akan membantu anda!
Dalam proses pembangunan setiap program kecil, ia pada asasnya dilengkapi dengan fungsi carian Jadi bagaimanakah fungsi carian yang agak pintar itu dilaksanakan? belajar, saya telah mempelajari fungsi kotak carian yang agak komprehensif. Mari kita lihat!
Persediaan pembangunan
- WeChat applet
- Anda suka perpustakaan komponen vant
Paparan kesan
Mari kita lihat kesannya dahulu
Persediaan awal
Import beberapa data ke dalam pangkalan data awan untuk menguji fungsi Bingkai carian
dilaksanakan
Cipta tiga halaman baharu di bawah direktori
indeks digunakan sebagai Halaman pertama kotak carian
carian ialah halaman yang digunakan untuk carian tertentu
hotsearch ialah halaman terperinci bagi kandungan carian
Pertama sekali, mari kita lihat reka letak indeks pada halaman pertama kotak carian Di sini kami memperkenalkan kandungan kotak carian yang lain di bawah tidak akan diterangkan di sini.
Ini ialah kod index.wxml
<view class="search_1" bindtap="gotoSearch"> <van-search placeholder="搜索单品" disabled /> </view> <view class="search_2"> <view class="pic" bindtap="list" > <image src=""></image> </view> </view> </view>
Ini ialah carian Kod .wxml kotak carian
<view class="dewu-search"> <view class="return" > <view class="return_pic" bindtap="gotoindex"> <image ></image> </view> <view class="txt">搜索</view> </view> </view> <van-search value="{{value}}" show-action placeholder="输入商品名称、货号" bind:clear="onClear" bind:search="onSearch" bind:cancel="oncancel" bind:change="onchange" bindtap="input" value="{{value}}" /> <block wx:if="results.length > 0"> <van-cell wx:for="{{results}}" wx:key="_id" title="{{item.title}}" size="large" /> </block> <view class="page1" hidden="{{issuggest==true?'hidden':''}}" > <view class="bd"> <view class="content">热门搜索</view> <view class="box"> <view class="items"> <view class="item" wx:for="{{goods}}" wx:key="index" bindtap="hotsearch" data-id="{{item.id}}" > {{item.hot}} </view> </view> </view> </view> <view class="last"> <view class="content">搜索历史</view> <view class="box"> <view class="items"> <view class="item" wx:for="{{historyList}}" wx:key="index" data-id="{{item.id}}" bindtap="gotohistoryList" wx:key="index"> {{item.hot}} </view> </view> </view> </view> </view> <view class="page2" hidden="{{issuggest==false?'hidden':''}}"> <view class="content1"> <view class="title" wx:for="{{goods1}}" data-id="{{item.id}}" wx:key="index" bindtap="hotsearch" > {{item.hot}} </view> </view> </view> </view>
js mesti diperkenalkan dahulu Data dalam pangkalan data awan
const db = wx.cloud.database(); const dewuCollection = db.collection('dewu');
Untuk muncul kandungan yang berkaitan apabila kotak input berubah, dua halaman diperlukan . Apabila terdapat input kandungan dalam kotak input, halaman tersembunyi dipaparkanhidden="{{issuggest==false?'hidden':''}}"
Untuk menentukan sama ada halaman kandungan yang berkaitan harus muncul,
Gunakan indexOf
untuk menentukan sama ada e.detail
(kandungan kotak input) wujud dalam pangkalan data awan Jika ia wujud, kemudian simpan data ini dalam tatasusunan dan sambung tatasusunan yang dicari sebelum ini, kemudian gunakan wx.setStorageSync();
Simpan. data dalam kotak input ke dalam storan, dan kemudian wx.getStorageSync()
mengekstrak data.
Ini ialah halaman butiran yang akan muncul apabila terdapat data dalam kotak input Klik untuk melompat ke halaman butiran produk
Ini adalah. kotak carian Logik
if(e.detail.length!=0){ this.setData({ issuggest:true, }) var arr = []; console.log(this.data.goods.length); for (var i = 0; i < this.data.goods.length; i++) { if (this.data.goods[i].hot.indexOf(e.detail)>=0) { arr.push(this.data.goods[i]); } this.setData({ goods1:arr, }) } } else { console.log('succes'); this.setData({ issuggest:false }) } }, async onSearch(e){ var arr1=new Array(); var historyList=new Array(); var storage=new Array(); for (let i = 0; i < this.data.goods.length; i++){ if(e.detail==this.data.goods[i].hot){ arr1.push(this.data.goods[i]); console.log(arr1); break } else{ arr1.push(e.detail); console.log(arr1); } } if(arr1.length>1){ this.setData({ storage:arr1.slice(arr1.length-1,arr1.length) }) } else{ console.log(arr1,'要存进去的数据'); this.setData({ storage:arr1 }) } if(this.data.historyList !=[]){ this.data.historyList = this.data.historyList.concat(this.data.storage);//连接 } else{ this.data.historyList=this.data.storage } wx.setStorageSync('historyList', this.data.historyList); this.setData({ historyList:this.data.historyList }) },
wx.navigateTo
boleh digunakan untuk melompat ke halaman terperinci, menambah templat rentetan, menentukan nilai id, menggunakan data untuk memacu halaman, lompat Pergi ke halaman yang sama dengan data yang berbeza.
wx.navigateTo({ url: `../hotsearch/hotsearch?id=`+id })
Akhir sekali, data perlu dikemas kini
wx.showLoading({ title: '数据加载中...', }) setTimeout(()=>{ wx.hideLoading() this.setData({ goodsNav: nav, goodsList:List, recommend:List, goods2:this.data.historyList }) },1000) // console.log(goodsList,'==========='); },
Berhati-hati jangan lupa untuk memperkenalkan alamat komponen yang perlu anda gunakan dalam json global atau halaman tempatan json
"usingComponents": { "van-search":"./miniprogram_npm/@vant/weapp/search/index" },
Sambungan
Fungsi melompat secara automatik ke tengah bar navigasi ini juga sangat biasa
Ini adalah perkara paling penting tentang kod wxml Ya scroll-x="true"
membolehkan bar navigasi meluncur dalam arah mendatar scroll-with-animation="true"
membolehkan gelongsor bernyawa scroll-into-view="{{scrollTop}}"
<scroll-view scroll-x="true" scroll-with-animation="true" style="width:100%;" class="scroll-view_H " scroll-into-view="{{scrollTop}}"> <view wx:for="{{goodsNav}}" wx:key="index" id="{{item.id}}" data-index="{{index}}" data-type="{{item.type}}" bindtap="changegoods" class="scroll-view-item_H {{activeNavIndex == index?'active': ''}} " > <text>{{item.text}}</text> </view> </scroll-view> </view>
Ini peristiwa yang terikat pada bar navigasi let {index, type} = e.currentTarget.dataset;
diekstrak untuk mengindeks dan menaip, kemudian tetapkan kiraan sebagai beberapa yang pertama, kemudian sambungkannya kepada id
, hantarkan nilai id
kepada scrollTop
dan biarkan bar navigasi melompat ke nilai scrollTop
, iaitu nilai di tengah
console.log(e); let {index, type} = e.currentTarget.dataset; console.log("index=" +index, "type="+type); this.setData({ activeNavIndex:index }) if (type == 'recommend') { this.setData({ goodsList: this.data.recommend }) } else { let goods = this.data.recommend.filter((good) => good.camptype == type ) this.setData({ goodsList: goods }) //console.log(this.data.goods) } var index1 = e.currentTarget.dataset.index; var count = 2; var id = "item"+(index1-count);//拼接id if(count == 2 && index1 < 3 || count == 3 && index1 < 2 || count == 4 && index1 < 3){ id = "item0"; } console.log("下标",index1,"---分类id名称",id) this.setData({ scrollTop: id }) },
Dengan cara ini, kesannya boleh dicapai dengan menambah wxss Walau bagaimanapun, terdapat masalah dengan menulis seperti ini, iaitu, apabila kandungan yang dipaparkan adalah nombor genap, seperti 6, ia tidak boleh melompat ke tengah dengan betul, dan akan melompat ke kedudukan 3, yang akan menyebabkan sedikit penyelewengan. . Saya masih belum menyelesaikan masalah ini, saya tertanya-tanya adakah sesiapa tahu bagaimana untuk menyelesaikan masalah ini?
Kod sumber
Berikut ialah kod sumber lengkap projek tersebut. Jika anda berminat, anda boleh menyemak kod sumber yang lengkap
https: //gitee.com/xinccc/fullstack_huoshan/tree/master/wxapp/dewu
Ringkasan
Ini adalah kali pertama saya menulis projek yang sedikit lengkap Di sini saya memperkenalkan kesukaran utama yang saya hadapi semasa proses pembangunan, Ini bermakna a banyak kepada saya. Pengalaman sebegitu menyedarkan saya bahawa masih banyak yang perlu saya pelajari. Saya juga berterima kasih kepada guru-guru dan rakan-rakan sekelas yang membantu saya ketika saya mengalami kesulitan Jika anda rasa artikel ini sampai kepada anda titik, anda mungkin juga memberi saya suka, yang akan menjadi galakan yang besar kepada saya Jika anda mempunyai sebarang nasihat, saya harap kita boleh berbincang dan belajar bersama di ruangan komen.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Pengenalan kepada Pengaturcaraan! !
Atas ialah kandungan terperinci Penjelasan mendalam tentang cara melaksanakan fungsi carian dalam program mini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dengan populariti teknologi Internet mudah alih dan telefon pintar, WeChat telah menjadi aplikasi yang sangat diperlukan dalam kehidupan orang ramai. Program mini WeChat membenarkan orang ramai menggunakan program mini secara langsung untuk menyelesaikan beberapa keperluan mudah tanpa memuat turun dan memasang aplikasi. Artikel ini akan memperkenalkan cara menggunakan Python untuk membangunkan applet WeChat. 1. Persediaan Sebelum menggunakan Python untuk membangunkan applet WeChat, anda perlu memasang perpustakaan Python yang berkaitan. Adalah disyorkan untuk menggunakan dua perpustakaan wxpy dan itchat di sini. wxpy ialah mesin WeChat

Melaksanakan kesan flipping kad dalam program mini WeChat Dalam program mini WeChat, melaksanakan kesan flipping kad ialah kesan animasi biasa yang boleh meningkatkan pengalaman pengguna dan daya tarikan interaksi antara muka. Yang berikut akan memperkenalkan secara terperinci cara melaksanakan kesan khas flipping kad dalam applet WeChat dan memberikan contoh kod yang berkaitan. Pertama, anda perlu menentukan dua elemen kad dalam fail susun atur halaman program mini, satu untuk memaparkan kandungan hadapan dan satu untuk memaparkan kandungan belakang Kod sampel khusus adalah seperti berikut: <!--index.wxml-. ->&l

Menurut berita dari laman web ini pada 31 Oktober, pada 27 Mei tahun ini, Ant Group mengumumkan pelancaran "Projek Pemilihan Watak Cina", dan baru-baru ini membawa kemajuan baharu: Alipay melancarkan program mini "Pemilihan Watak Cina-Watak Biasa" untuk mengumpul koleksi daripada masyarakat Watak nadir menambah pustaka aksara jarang dan memberikan pengalaman input yang berbeza untuk aksara jarang untuk membantu memperbaik kaedah input aksara jarang dalam Alipay. Pada masa ini, pengguna boleh memasukkan applet "Watak Tidak Biasa" dengan mencari kata kunci seperti "Pengambilan aksara Cina" dan "aksara jarang". Dalam program mini, pengguna boleh menghantar gambar aksara jarang yang belum dikenali dan dimasukkan oleh sistem Selepas pengesahan, jurutera Alipay akan membuat entri tambahan ke dalam perpustakaan fon. Laman web ini mendapati bahawa pengguna juga boleh mengalami kaedah input pemisahan perkataan terkini dalam program mini Kaedah input ini direka untuk perkataan yang jarang dengan sebutan yang tidak jelas. Pembongkaran pengguna

Bagaimana uniapp boleh mencapai penukaran pantas antara program mini dan H5 memerlukan contoh kod khusus Dalam beberapa tahun kebelakangan ini, dengan perkembangan Internet mudah alih dan populariti telefon pintar, program mini dan H5 telah menjadi bentuk aplikasi yang sangat diperlukan. Sebagai rangka kerja pembangunan merentas platform, uniapp boleh dengan cepat merealisasikan penukaran antara program kecil dan H5 berdasarkan set kod, meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan cara uniapp boleh mencapai penukaran pantas antara program mini dan H5, dan memberikan contoh kod khusus. 1. Pengenalan kepada uniapp unia

HTML, CSS dan jQuery: Buat jadual data dengan fungsi carian Dalam pembangunan web moden, jadual data ialah elemen yang kerap digunakan. Untuk memudahkan pengguna mencari dan menapis data, menambah fungsi carian pada jadual data telah menjadi fungsi penting. Artikel ini akan memperkenalkan cara menggunakan HTML, CSS dan jQuery untuk mencipta jadual data dengan fungsi carian, dan menyediakan contoh kod khusus. 1. Struktur HTML Pertama, kita perlu mencipta struktur HTML asas untuk menampung jadual data

PHPElasticsearch: Bagaimana untuk menggunakan pemetaan dinamik untuk mencapai keupayaan carian yang fleksibel? Pengenalan: Fungsi carian adalah bahagian penting dalam membangunkan aplikasi moden. Elasticsearch ialah enjin carian dan analisis berkuasa yang menyediakan fungsi yang kaya dan pemodelan data yang fleksibel. Dalam artikel ini, kami akan menumpukan pada cara menggunakan pemetaan dinamik untuk mencapai keupayaan carian yang fleksibel. 1. Pengenalan kepada pemetaan dinamik Dalam Elasticsearch, pemetaan (mapp

Gambaran keseluruhan tentang cara membangunkan fungsi carian yang berkuasa menggunakan PHP dan ManticoreSearch: Fungsi carian memainkan peranan penting dalam pembangunan aplikasi moden. Untuk mencapai keupayaan carian yang cekap dan tepat, adalah penting untuk menggunakan enjin carian yang sesuai. ManticoreSearch ialah enjin carian teks penuh berkuasa yang menyediakan keupayaan carian berprestasi tinggi dan berskala. Artikel ini akan memperkenalkan cara menggunakan PHP dan ManticoreSearch untuk membangunkan fungsi carian yang berkuasa dan

Langkah-langkah operasi pendaftaran program mini: 1. Sediakan salinan kad pengenalan peribadi, lesen perniagaan korporat, kad pengenalan orang sah dan bahan pemfailan lain 2. Log masuk ke latar belakang pengurusan program mini 3. Masukkan halaman tetapan program mini; Pilih " "Basic Settings"; 5. Isikan maklumat pemfailan; 6. Muat naik bahan pemfailan; 7. Hantar permohonan pemfailan; 8. Tunggu keputusan semakan. Jika pemfailan tidak lulus, buat pengubahsuaian berdasarkan alasan dan serahkan semula permohonan pemfailan; 9. Operasi susulan bagi pemfailan ialah Can.
