• 微信小程序这一块(下)


    1、小程序分为两部分 :页面、组件

    2、小程序中如何定义自定义组件?

      凡是通过Page创建的都是页面,而通过Components创建的都是组件

      当组件创建成功后,在需要使用的页面进行引入,(找到页面的json文件中的usingComponents配置项进行引入,key值是组件名称,value值是组件的路径)

      !!!注意:自定义组件的事件必须放在methods中去

    3、小程序中自定义组件如何进行传递参数

      页面与组件进行传参?

        给组件绑定自定义属性

        在组件内部通过properties进行接收

      -----------------------------------------------------------

      组件与页面进行传参

        给组件绑定自定义事件  bind自定义事件名称

        在组件内部通过生命周期attached进行传递,在attached中通过调用this.triggerEvent进行事件的传参(第一个参数为自定义事件名称,第二个参数是需要传递的参数)

    4、小程序中存储、读取、删除数据

    onLoad(){
        // wx.setStorage({//存储数据异步
        //   key:"wang",
        //   data:[{name:"wangwenchao",age:"20"}],
        //   success:function(){//在回调中可以验证是否存储成功
        //     console.log("存储成功")
        //   }
        // })
    
    
        // wx.setStorageSync("city",[{name:111,age:888}])//异步存储数据
    
      // wx.getStorage({//异步获取数据
      //   key:"wang",
      //   success:function(data){
      //     console.log(data)//这里是你要获取的数据
      //   }
      // })
    
      // var data=wx.getStorageSync("wang")//同步获取数据
      // console.log(data)
    
    
      // wx.removeStorage({//异步删除数据
      //   key:"wang",
      //   success:function(){
      //     console.log("删除成功")
      //   }
      // })
    
      // wx.removeStorageSync("city")//同步删除
      // console.log("删除成功")
    
      }

    详情见:https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorage.html

    5、小程序中的路由跳转:

        微信Api跳转,

          wx.switchTab、wx.natigator

        组件跳转

        <navigator url="/pages/logs/logs">日志页面</navigator>  url是跳转路径,默认是,当前页面如果有tabBar那么不支持跳转

        如果需要跳转那么

        <navigator url="/pages/logs/logs" open-type="switchTab">日志页面</navigator>
    6、如何获取用户个人信息?
      通过button  设置open-type属性,值为getuserInfo  通过bindgetuserInfo事件来获取用户的信息
      <button></button>button按钮获取  最主要的任务:获取用户信息
    <!--pages/try/try.wxml-->
    <button open-type="getUserInfo" bindgetuserinfo="bindgetuserinfo">点击</button>
    <!-- 设置open-type="getUserInfo"获取用户信息 -->
    <!-- bindgetuserinfo从这个回调中获取用户信息 -->
    <!-- 详情可见:https://developers.weixin.qq.com/miniprogram/dev/component/button.html下 -->

    <view>用户昵称:{{username}}</view> <view>用户头像: <image src="{{userPic}}"></image> </view>
    Page({
      data:{
        username:"",
        userPic:""
      },
      bindgetuserinfo(e){//获取信息的函数
        console.log(e)
        let data=e.detail.userInfo
        this.setData({
          username: data.nickName,
          userPic: data.avatarUrl
        })
      }
    })

    7、用户授权的方式?

     wx.authorize用户授权(出userInfo以外的授权)

    wx.openSetting手动授权

    wx.getSetting查看用户是否授权

    App({
      onLaunch(){
        //进入小程序,主动发起授权,检测是否授权
        wx.getSetting({
          success:function(data){
            if (!data.authSetting['scope.userLocation']){
              //如果未授权,那么主动调用授权方法
              wx.authorize({
                scope: 'scope.userLocation',
                success:function(e){
                  console.log(e)
                }
              })
            }
            // console.log(e)
          }
        })
        // console.log("进入小程序")
      },
    
      
    })

    8、小程序登录流程:

      wx.login获取code值--------通过wx.request将code值发送到服务端-------服务端通过微信登陆验证接口获取session_key和openid-------将session_key融入到token当中并将token发送到客户端-------客服端请求数据是携带token到服务端进行验证

    如何将code融入到token地址:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html

    token验证流程将用户名密码发送到服务端,验证成功以后会派发一个token到客服端,客服端进行数据请求的时候需要携带token到服务端,此时服务端会对比这个token是不是当时派发的那个,如果验证成功返回对应的数据,否则token验证失败

      

     
      

      

  • 相关阅读:
    MySql 应用语句
    MySql 存储过程 退出
    MySql 存储过程 光标只循环一次
    MySql获取两个日期间的时间差
    VM VirtualBox 全屏模式 && 自动缩放模式 相互切换
    区分不同操作系统、编译器不同版本的宏
    debian下配置网络 安装无线网卡驱动 Broadcom BCMXX系列
    YII 主题设置
    Unix线程概念、控制原语、属性
    远程IPC种植木马
  • 原文地址:https://www.cnblogs.com/Bree/p/12025068.html
Copyright © 2020-2023  润新知