[小程序开发] API

本文介绍了微信小程序中的关键API,包括异步和同步API的使用、网络请求的wx.request接口、loading和消息提示功能,以及本地存储、页面路由和滚动事件的实现,为开发者提供小程序开发的基础指南。
摘要由CSDN通过智能技术生成

一、介绍

        小程序提供的API几乎都挂载在wx对象下,wx对象实际上就是小程序的宿主环境微信所提供的全局对象。

二、分类

        1、异步API:通常都接受一个object类型的参数,例如:wx.request({})

  • 当接口参数Object对象中不包含success/fail/complete时将默认返回Promise。
  • 部分接口如request,uploadFile本身就有返回值,因此不支持Promise风格的调用方法,它们的promisify需要开发者自行封装。

        2、同步API:约定以Sync结尾,例如:wx.setStorageSync()

        3、事件监听API:约定以on开头,例如:wx.onAppHide()

三、wx.request()接口API

        发起网络请求获取服务器的数据。

        wx.request请求的域名必须在微信公众平台进行配置,如果使用wx.requset请求未配置的域名,在控制台会有相应的报错。

 wx.request({
            // url接口地址
          url: '地址',
            //   method请求方式
            method:"GET",
            // data请求参数
            data:{},
            // header请求头
            header:{},
            // API调用成功以后,执行的回调
            success:(res)=>{
            //   console.log(res)
                if(res.data.statusCode===200){
                    this.setData({
                        list:res.data.data
                    })
                }
            },
             // API调用失败以后,执行的回调
            fail:(err)=>{
                console.log(err)
            },
             // API调用不管成功或失败以后,执行的回调
            complete:(res)=>{
                // console.log(res)

                // 关掉loading提示框
                wx.hideLoading()
            }
        })

四、 loading提示框 

       wx.showLoading()显示loading提示框

       wx.hideLoading()关闭loading提示框

wx.showLoading()和wx.hideLoading()必须成对使用。 

 // 显示loading提示框
        wx.showLoading({
            // 用来显示提示的内容,提示的内容不会自动换行
          title: '正在加载中...',
        //   是否展示透明蒙层,防止触摸穿透
          mask:true
        })


 // 关掉loading提示框
                wx.hideLoading()

五、消息提示框

        wx.showModal():模态对话框,常用于询问用户是否执行一些操作。例:询问用户是否退出登录、是否删除该商品等。

        wx.showToast():消息提示框,根据用户的某些操作来告知操作的结果。例:退出成功给用户提示,提示删除成功等。 

// 删除商品
    async delHandler(){

        // wx.showModal显示模态对话框
        const {confirm}=await wx.showModal({        
          content: '是否删除该商品',
          title: '提示'
        })
        if(confirm){
            // wx.showToast显示消息提示框
            wx.showToast({
              title: '删除成功',
              duration: 2000,
              icon: "success",
            })
        }else{
            wx.showToast({
              title: '取消删除 ',
              icon:"error",
              duration:2000
            })
        }

    }

六、本地存储

        1、同步API(以Sync结尾)

                存储:wx.setStorageSync()

                获取:wx.getStorageSync()

                删除:wx.removeStorageSync()

                清空:wx.clearStorageSync()

setStorage(){
        // 同步APIwx.setStorageSync,第一个参数:本地存储中指定的key;第二个参数:需要存储的数据
        wx.setStorageSync('num',1)
        // 在小程序中,如果存储的是对象类型数据,不需要使用JSON.stringify和JSON.parse进行转换,直接进行存储和获取即可
        wx.setStorageSync('obj',{name:'tom',age:10})
        
    },

    // 获取本地存储的数据
   getStorage(){
        // 同步API,从本地存储的数据中,获取指定key的数据内容
        const num=wx.getStorageSync('num')
        const obj=wx.getStorageSync('obj')
        console.log(num)
        console.log(obj)
    },

    // 删除本地存储的数据
    removeStorage(){
         // 同步API,从本地存储的数据中,移除指定key的数据内容
        wx.removeStorageSync('num')

    },

    // 清空本地存储的全部数据
    clearStorage(){
         // 同步API,清空本地存储的全部数据
        wx.clearStorageSync()
    }

        2、异步API

                存储:wx.setStorage()

                获取:wx.getStorage()

                删除:wx.removeStorage()

                清空:wx.clearStorage()

setStorage(){
       
        // 异步API
        wx.setStorage({
            key:"num",
            data:1
        })
        wx.setStorage({
            key:"obj",
            data:{name:"jerry",age:18}
        })

    },

    // 获取本地存储的数据
    async getStorage(){
       
        // 异步API
        const {data}=await wx.getStorage({
            key:"obj"
        })
        console.log(data)
    },

    // 删除本地存储的数据
    removeStorage(){
        
        // 异步API
        wx.removeStorage({
            key:"num"
        })
    },

    // 清空本地存储的全部数据
    clearStorage(){
        
        // 异步API
        wx.clearStorage()
    }

对象类型的数据,可以直接进行存储获取,无需使用JSON,stringify()、JSON.parse()转换。

 七、路由和通信

        1、实现页面的跳转

  • 声明式导航:navigator组件
  • 编程式导航:使用小程序提供的API

        wx.navigatTo():保留当前页面,跳转到应用内的某个页面,但是不能跳到tabber页面。

        wx.redirectTo():关闭当前页面,跳转到应用内的某个页面,但是不允许跳转到tabber页面。

        wx.switchTab():跳转到tabBar页面,路径后不能带参数。

        wx.reLaunch():关闭所有页面,打开到应用内的某个页面。

        wx.navigateBack():关闭当前页面,返回上一页面或多级页面。

     navigateTo(){
        // 保留当前页面,跳转到应用中其他页面,不能跳转到tabBar页面
       wx.navigateTo({
        //  url: '/pages/list/list',
        //  传递参数
         url:'/pages/list/list?id=1&name=tom'
       })
    },
    redirectTo(){
        wx.redirectTo({
        // 关闭当前页面,跳转到应用中其他页面,不能跳转到tabBar页面
          url: '/pages/list/list',
        })
    },
    switchTab(){
        // 跳转到tabBar页面,不能跳转到非tabBar页面,路径后面不能传递参数
        wx.switchTab({
          url: '/pages/cate/cate',
        })
    },
    reLauch(){
        // 关闭所有的页面,然后跳转到应用中某一个页面
        wx.reLaunch({
          url: '/pages/list/list',
        })
    },
    navigateBack(){
        // 关闭当前页面,返回上一页面或多级页面。
        wx.navigateBack({
            // delta返回页面级数,可省略         
            delta:1   
        })
    }

编程式导航API路径后可以带参数,参数与路径之间用?分隔,参数键与参数值用=相连,不同参数用&分隔。参数需要在跳转到的页面的onLoad钩子函数中通过形参进行接收。

 八、上拉加载

        当用户滑动到页面底部时,会自动加载更多的内容,以便用户继续浏览。

        在app.json或page.json中配置页面底部距离:onReachBottomDistance,默认50px。

        在页面.js中定义onReachBottom事件监听用户上拉加载。

九、下拉刷新

        当用户下拉页面时,页面会自动刷新,以便用户获取最新的内容。

        在app.json或page.json中开启允许下拉,同时可以配置窗口、loading样式等。

        在页面.js中定义onPullDownRefresh事件监听用户下拉刷新。

十、scroll—view

        实现更多上拉加载和下拉刷新功能。

<!-- scroll-view实现上拉加载 -->
<scroll-view
	scroll-y
	class="scroll-y"
	
	lower-threshold="100"
	bindscrolltolower="getMore"
	enable-back-to-top="true"

>
	<view wx:for="{{numList}}" wx:key="*this">{{item}}</view>
</scroll-view>
<!-- scroll-view实现下拉刷新 -->
<scroll-view
	scroll-y
	class="scroll-y"

	refresher-enabled="true"
	refresher-default-style="black"
	refresher-background="#f7f7f8"
	bindrefresherrefresh="refreshHandler"
	refresher-triggered="{{isTriggered}}"


>
	<view wx:for="{{numList}}" wx:key="*this">{{item}}</view>
</scroll-view>

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值