• 技术文章 >web前端 >js教程

    微信小程序中有关数据存储与取值问题

    亚连亚连2018-06-08 17:59:14原创760
    这篇文章主要为大家详细介绍了微信小程序数据存储与取值的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    在小程序开发的过程,经常要需要这个页面输入的数据,在下一个页面中进行取值赋值。

    比如:

    在A页面input输入框,输入电话号码,点击添加。需要在B页面电话区域中,显示刚刚输入的电话号码。

    因为这是两个页面,就需要先存储,再取值。微信小程序提供了数据存储的API,wx.setStorage(OBJECT) 可以将数据存储在本地缓存中指定的 key 中,如果重复会覆盖掉原来该 key 对应的内容。

    思路是,在A页面,使用bindinput获取input输入的值,赋值给一个变量(自定义),点击添加按钮时,如果变量不为空,将变量的值存储在本地缓存中,在B页面,使用wx.getStorage(OBJECT) 方法取值;

    ps : 源代码在页面底部

    代码如下:

    对input输入框,绑定事件bindinput="bindKeyInput" ,设置value="{{inputValue}}" ,因为电话号码为数字,设置type="number" 。对按钮添加点击事件bindtap="addbtn"

    在JS文件中添加代码

    B页面代码

    在JS文件中,声明变量addtel。在页面切换过来的时候,取出我们刚存储的值,赋值给变量addtel。在需要显示电话号码的地方,用变量来接收。

    在JS文件中添加代码

    data:{
      addtel : ''
    }

    这里在onShow的方法中进行取值,当小程序启动,或从后台进入前台显示,就会触发 onShow。

    不过,每个微信小程序都可以有自己的本地缓存,使用这些方法时,要注意本地缓存最大为10MB,wx.setStorage(wx.setStorageSync)wx.getStorage(wx.getStorageSync)可以对本地缓存进行设置、获取和清理。。

    也可以使用wx.clearStorage(wx.clearStorageSync)来清理缓存。

    代码写完之后,进行测试。

    在输入框中输入电话号码,点击添加。

    OK,取值成功。

    A页面源代码:

    <view class="add-page">
      <input placeholder="输入手机号添加客户" type="number" bindinput="bindKeyInput" value="{{inputValue}}" />
       <button type="warn" class="add-btn" bindtap="addbtn" >添加</button>
    </view>
    var app = getApp()
    Page({
     data: {
      inputValue:''
     },
     bindKeyInput:function(e){
      this.setData({
       inputValue: e.detail.value
      })
     },
     addbtn:function(){
       if(this.data.inputValue){
        wx.redirectTo({
         url: '../ordered/ordered'
        })
        wx.setStorage({
         key:"addTel",
         data:this.data.inputValue
        })
       }else{
        wx.showModal({
         title: '手机号为空',
         content: '请输入手机号码',
         success: function(res) {
          if (res.confirm) {
           console.log('用户点击确定')
          }
         }
        })
       }
     },
     onload:function(){
      //onload
     }
    
    })

    B页面源代码:

    <view class="menu-item">
     <navigator class="menu-item-main" >
       <text class="menu-item-name">电话</text>
       <view class="ordtel">
        <text class="ordtext">{{addtel}}</text>
        <image class="menu-item-icon"  src="/image/tel.png"></image>
       </view>      
     </navigator>
    </view>
    var app = getApp()
    Page({
      data:{
        addtel : ''
      },
      onShow:function(){
      var that = this;
      wx.getStorage({
       key: 'addTel',
       success: function(res) {
         console.log(res.data)
         that.setData({
          addtel:res.data
         })
       } 
      })
     }
    })

    上面是我整理给大家的,希望今后会对大家有帮助。

    相关文章:

    使用webpack打包处理bundle.js文件过大的问题

    使用node实现内置调试

    JavaScript的6种正则表达式(详细教程)

    以上就是微信小程序中有关数据存储与取值问题的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:关于ajax跨域访问cookie丢失的解决方法的讲解 下一篇:Vue中如何实现精简版风格(详细教程)
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 总结Node.js模块开发及常用技巧分享• 实例讲解node中http模块和url模块的使用方法• 示例解析Json对象Json字符串的序列化与反序列化• Node文件系统:fs异步与同步(文件读写)• Module模块化编程的优点(总结分享)
    1/1

    PHP中文网