小程序中搜索框高级应用

104 阅读1分钟

产品效果

image.png

首先完成输入框和按钮部分

 <view>
<input model:value="{{inpText}}" type="text" class="inp-box" />
</view>
<button bindtap="cli">添加</button>
Component({
  options:{
    // 启用多插槽功能,否则只能有一个插槽
    multipleSlots:true
  },
  /**组件的属性列表*/
  properties: {
    inpText:''
  },
  methods: {
    cli(){
     this.triggerEvent('cli', this.data.inpText)
     this.setData({inpText:''})
    }
  }
})

完成底部渲染部分


<view class="box">
<view bindtap="tes">--渲染记录--</view>

<view wx:for="{{list}}" wx:key="*this" > {{item}} 
---{{index}}---
<text bindtap="del" data-index="{{index}}" >删除</text> 
</view>
</view>
Component({
  options:{
    // 启用多插槽功能,否则只能有一个插槽
    multipleSlots:true
  },
  /**组件的属性列表*/
  lifetimes:{
    attached(){
      this.tes()
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
   list:['123','abc']
  },

  /**
   * 组件的方法列表
   */
  methods: {
    tes(){
      console.log('生命周期页面',wx.getStorageSync('key'))  
      this.data.list = wx.getStorageSync('key')
      this.setData({list: this.data.list})
    },
    del(e){
      console.log('删除',e.target.dataset.index)
      this.triggerEvent('del', e.target.dataset.index)
      this.tes()
    }
  }
})

删除部分

<my-com7 bindcli="onCli"></my-com7>
<my-com8  binddel="onDel"  id="tes" ></my-com8>


Page({
  onCli(e){
    this.data.list.push(e.detail)
    wx.setStorageSync('key', this.data.list)
    this.setData({list:this.data.list})
    this.selectComponent('#tes').tes()
  },
  onDel(e){
    let ar = wx.getStorageSync('key')
    let res = this.data.list.filter((item,index) => index !== e.detail)
    console.log('传值',res)
    wx.setStorageSync('key', res)
    this.setData({list:res})
  },
  /**
   * 页面的初始数据
   */
  data: {
  list:['CSH']
  }
})