小程序简单的搜索栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序简单的搜索栏相关的知识,希望对你有一定的参考价值。

参考技术A <!--pages/search/search.wxml-->

<van-search

  value=" value "

  placeholder="请输入搜索关键词"

  show-action

  input-align="center"

  bind:search="onSearch"

  bind:cancel="onCancel"

  bind:change="onChange"

    background="#4fc08d"

/>

<ListItem itemList="itemList" />

<view wx:if="kong" style="padding: 20px;text-align: center;">无更多数据</view>

<van-toast id="van-toast" />



  "usingComponents": 

    "van-search": "@vant/weapp/search/index",

    "ListItem":"/components/ListItem/ListItem",

    "van-toast": "@vant/weapp/toast/index"

  ,

  "navigationBarTitleText": "搜索",

  "enablePullDownRefresh": true,

  "onReachBottomDistance": 0



const  goodsHttp  = require('../../http/api')

import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast.js';

Page(

    data: 

        value: '',

        itemList:[],

        page:1,

        kong:false,

        isloding:true

    ,

    onLoad()

        this.init();

        if(this.data.isloding)return this.init();

    ,

    async init()

        try

            this.setData(

                isloding:false

            )

            wx.showLoading(

              title: '别急哦~',

            )

            let goods:data = await goodsHttp(title:this.data.value,

            page:this.data.page)

            data.forEach(r=>r.description='书籍是人类进步的电梯书籍是人类进步的电梯书籍是人类进步的电梯')

            if(this.data.page==1)

                this.data.itemList = []

            

            this.setData(itemList:[...this.data.itemList,...data])

            if(!data.length)

                this.setData(

                    kong:true

                )

            

            else

             this.setData(

                 kong:false

             )

            

            Toast.clear();

            wx.hideLoading()

            this.setData(

                isloding:true

            )

        catch(err)

            console.log(err)

        

    ,

    onReachBottom()

        this.data.page++;

        this.init();

    ,

    onChange(e) 

        this.setData(

            value: e.detail,

        );

    ,

    onSearch() 

        this.data.page = 1

        this.init(this.data.value)

        console.log('搜索' + this.data.value);

    ,

    onCancel() 

        /* encodeURIComponent('微信小程序') 转码 

        decodeURIComponent("%E4%BD%A0%E6%98%AF%E5%82%BB%E9%80%BC") 解码

        */

        this.data.value = '';

        this.init()

        this.data.page = 1

        console.log('取消' + this.data.value);

    ,

    onPullDownRefresh: function () 

                this.data.page=1;

                this.init();

            ,

);

<!--components/ListItem/ListItem.wxml-->

<block wx:for="itemList" wx:key="index">

    <view class="flex item" bindtap="go" data-url="item.cover_url">

        <image class="img1" src="item.cover_url"></image>

        <view class="row">

            <view class="title">

                item.title

            </view>

            <view class="dec item.price?'van-multi-ellipsis--l2':'van-multi-ellipsis--l3'">

                item.description

            </view>

            <view class="common-sty" wx:if="item.price">

                <text>价格:item.price</text>

                <text>销量:item.sales</text>

                <text>收藏人数:item.collects_count</text>

            </view>

        </view>

    </view>

</block>

/* components/ListItem/ListItem.wxss */

/* @import '@vant/weapp/common/index.wxss'; */

@import '/miniprogram_npm/@vant/weapp/common/index.wxss';

.flex

    display: flex;

  

.item

    padding:5px;



.img1

    width: 120px;

    height: 120px;

    display: block;

    border-radius: 5px;



.row

    flex:1;

    height: 120px



.title

    padding:10px;

    text-overflow: ellipsis;

    display: -webkit-box;

    -webkit-line-clamp: 1;

    word-break: break-all;

    -webkit-box-orient: vertical;

    height:14px;

    overflow: hidden;



.dec

    padding: 0 10px;

    margin-top: 10px;



.common-sty

    font-size: 12px;

    padding:10px;

    color:rgb(66, 64, 64);



.common-sty text

    margin-right: 10px;





    "component": true,

    "usingComponents": 



// components/ListItem/ListItem.js

Component(

    /**

     * 组件的属性列表

     */

    properties: 

        itemList:

            type:Array,

            value:[

                cover_url:"https://oss.shop.eduwork.cn/product/2020-0820-5f3e15bc69891.png",

                title:"人类的书籍",

                description:"人类进步的阶梯人类进步的阶梯"

            ]

        ,

    ,

    /**

     * 组件的初始数据

     */

    data: 

    ,

    /**

     * 组件的方法列表

     */

    methods: 

        go(e)

            let url = e.currentTarget.dataset.url;

            wx.navigateTo(

              url: '/pages/web/web?url='+url,

            )

        

    

)

以上是关于小程序简单的搜索栏的主要内容,如果未能解决你的问题,请参考以下文章

IDEA插件系列(63):Build Number Status Bar Widget插件——内部版本号状态栏小部件

#yyds干货盘点#愚公系列2022年10月 微信小程序-场景值

2017-3-23 网页中的表单 框架 标题栏小图标 描点 插入视频音频 简单的滚动条

Flutter 专题10 图解底部状态栏小尝试 #yyds干货盘点#

小程序简单的搜索栏

标签栏小图标