最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序 搜索框組件代碼實例

 更新時間:2019年09月06日 11:41:33   作者:達叔小生  
這篇文章主要介紹了微信小程序 搜索框組件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這篇文章主要介紹了微信小程序 搜索框組件代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

代碼如下

search.wxml

<view class="header">
  <view class="search">
    <icon type="search" size="18" color="">

    </icon>
    <input type="text" confirm-type="search" bindconfirm="onConfirm" value="{{value}}" />
    <icon type="clear" size="18" bind:tap="onToggle" />
  </view>
  <button bind:tap="onCancel" plain="{{true}}" class="cancel">取消</button>
</view>
<view class="container" wx:if="{{!isSearch}}">
  <view class="title">
    <view class="line"></view>
    <text>歷史搜索</text>
  </view>
  <view class="history-container">
    <block wx:for="{{words}}" wx:key="{{index}}">
      <v-tag content="{{item}}" bind:comment="onConfirm"></v-tag>
    </block>
  </view>
  <view class="title">
    <view class="line"></view>
    <text>熱門搜索</text>
  </view>
  <view class="history-container">
    <block wx:for="{{hots}}" wx:key="{{index}}">
      <v-tag content="{{item}}" bind:comment="onConfirm"></v-tag>
    </block>
  </view>
</view>
<view class="result" wx:if="{{isSearch}}" >
  <block wx:for="{{books}}" wx:key="index">
    <v-book book="{{item}}"></v-book>
  </block>
</view>

search.wxss

.header{
  position: fixed;
  top:0;
  left: 0;
  z-index: 300;
  height:100rpx;
  display: flex;
  padding-left:20rpx;
  padding-right:20rpx;
  align-items: center;
  border-top: 1rpx solid #eee;
  border-bottom: 1rpx solid #eee;
  flex-direction: row;
  background: #fff;
}
.search{
  width:530rpx;
  height:70rpx;
  background: rgb(245, 245, 245);
  border-radius:30rpx;
  padding-left: 20rpx;
  display: flex;
  align-items: center;
}
.search input{
  flex:1;
  margin-left: 20rpx;
}
.cancel{
  height:70rpx;
  border-radius: 30rpx;
  line-height: 70rpx;
  border-color: #888;
}
.container{
  margin-top: 100rpx;
  padding: 20rpx;
}
.title{
  display: flex;
  height:90rpx;
  align-items: center;
}
.line{
  height:40rpx;
  width:10rpx;
  background: #333;
}
.result{
  margin-top: 100rpx;
  padding-left:90rpx;
  padding-right:90rpx;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
v-book{
  margin-bottom: 60rpx;
}

search.js

// components/search/search.js
import { Keyword } from "../../models/keyword";
import { BookModel } from "../../models/book";
const keyword = new Keyword();
const bookModel = new BookModel();
Component({
 /**
  * 組件的屬性列表
  */
 properties: {

 },

 /**
  * 組件的初始數(shù)據(jù)
  */
 data: {
  words: [],
  hots: [],
  books:[],
  isSearch:false,
  //給輸入的默認值
  value:""
 },

 /**
  * 組件的方法列表
  */
 methods: {
  onConfirm(event) {
   let value = event.detail.value;
   // 只有在服務(wù)器上能搜索到的關(guān)鍵字才添加到緩存中
   bookModel.getBookSearch(0, value).then(res => {
    if (res.total) {
     keyword.addHistory(value);
     let words = keyword.getHistory();
     this.setData({
      words,
      books:res.books,
      isSearch:true
     })
    }// console.log(res);
   })
  },
   onToggle() {
   this.setData({
    value: "",
    isSearch:false
   })
  },
  onCancel() {
   this.setData({
    isSearch: false
   })
  }
 },
 attached() {
  // keyword.getHistory();
  this.setData({
   words: keyword.getHistory()
  })
  keyword.getHotData().then(res => {
   // console.log(res.hot);
   this.setData({
    hots: res.hot
   })
  })
 }
})

models/keyword

import {HTTP} from "../utils/http-p";
class Keyword extends HTTP{
  getHistory(){
    const words = wx.getStorageSync('q')
    if(words){
      return words
    }else{
      return [];
    }
  }
  addHistory(value){
    var words = this.getHistory();
    const has = words.includes(value);
    if(value && !has){
      if(words.length>4){
        words.pop()
      }
      words.unshift(value);
      wx.setStorageSync('q', words)
    }
  }
  getHotData(){
    return this.request({
      url:`/book/hot_keyword`
    })
  }
  getKeyword(start,value){
    return this.request({
      url:`/book/search`,
      data:{
        start,
        q:value
      }
    })
  }
}
export {Keyword}

models/book

import {HTTP} from "../utils/http-p";
class BookModel extends HTTP{
  getHotBook(){
    return this.request({
      url:"/book/hot_list"
    })
  }
  getBookDateil(id){
    return this.request({
      url:`/book/${id}/detail`
    })
  }
  getBookComment(id){
    return this.request({
      url:`/book/${id}/short_comment`
    })
  }
  getBookLike(id){
    return this.request({
      url:`/book/${id}/favor`
    })
  }
  // 新增短評
  addNewComment(id,content){
    return this.request({
      url:`/book/add/short_comment`,
      method:"POST",
      data:{
        book_id:id,
        content
      }
    })
  }
  // 獲取搜索結(jié)果
  getBookSearch(start,value){
    return this.request({
      url:`/book/search`,
      data:{
        start,
        q:value
      }
    })
  }
}
export {BookModel};

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    js中數(shù)組解構(gòu)與對象解構(gòu)示例代碼

    數(shù)組解構(gòu)是一種在 JavaScript 中從數(shù)組中提取值并將它們分配給變量的方式,在數(shù)組解構(gòu)中分為完全解構(gòu),不完全解構(gòu),解構(gòu)失敗以及解構(gòu)默認值,這篇文章主要介紹了js中數(shù)組解構(gòu)與對象解構(gòu),需要的朋友可以參考下
    2023-09-09
  • 微信小程序聊天功能的示例代碼

    微信小程序聊天功能的示例代碼

    這篇文章主要介紹了微信小程序聊天功能的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • javascript中使用正則計算中文長度的例子

    javascript中使用正則計算中文長度的例子

    這篇文章主要介紹了javascript中使用正則計算中文長度的例子,需要的朋友可以參考下
    2014-04-04
  • javascript實現(xiàn)彈幕墻效果

    javascript實現(xiàn)彈幕墻效果

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)彈幕墻效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • css+html+js實現(xiàn)五角星評分

    css+html+js實現(xiàn)五角星評分

    這篇文章主要為大家詳細介紹了css+html+js實現(xiàn)五角星評分,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • js實現(xiàn)點擊生成隨機div

    js實現(xiàn)點擊生成隨機div

    這篇文章主要為大家詳細介紹了js實現(xiàn)點擊生成隨機div,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • javascript 調(diào)用其他頁面的js函數(shù)或變量的腳本

    javascript 調(diào)用其他頁面的js函數(shù)或變量的腳本

    web開發(fā)的時候,有時候需要使用其他頁面上寫好的javasript函數(shù)、變量。如彈出窗口需要使用父窗口中的函數(shù),框架1需要使用框架2中的函數(shù)。
    2008-05-05
  • js數(shù)組去重常見的方法匯總(7種)

    js數(shù)組去重常見的方法匯總(7種)

    我們做項目的時候往往會需要把數(shù)組里面一些重復(fù)的項去掉,下面這篇文章主要給大家介紹了關(guān)于js數(shù)組去重常見的7種方法匯總,對每種方法都進行了總結(jié),需要的朋友可以參考下
    2022-08-08
  • JS實現(xiàn)十分鐘倒計時代碼實例

    JS實現(xiàn)十分鐘倒計時代碼實例

    在本篇文章里我們給大家分享了關(guān)于JS實現(xiàn)十分鐘倒計時的相關(guān)實例代碼,有需要的朋友們可以學習下。
    2018-10-10
  • window.open打開窗口被攔截的快速解決方法

    window.open打開窗口被攔截的快速解決方法

    下面小編就為大家?guī)硪黄獁indow.open打開窗口被攔截的快速解決方法。覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08

最新評論

工布江达县| 萨迦县| 祁门县| 瓮安县| 调兵山市| 民权县| 虎林市| 巴东县| 光山县| 县级市| 惠东县| 车致| 和龙市| 皋兰县| 丹江口市| 漳平市| 格尔木市| 锡林浩特市| 宕昌县| 怀集县| 桑植县| 南汇区| 雷山县| 梅河口市| 武穴市| 珠海市| 吴堡县| 阿拉尔市| 韶关市| 孟津县| 资兴市| 阿坝| 阜新市| 鹰潭市| 兖州市| 成都市| 桂平市| 阿城市| 临城县| 古蔺县| 买车|