微信小程序之公共组件

首先我们要创建一个公共组件

在这里插入图片描述
然后在login.json文件中将component定义为true

{
  "component": true,
  "usingComponents": {}
}

在login.wxml添加内容

<!-- 登录 -->
<van-popup
  show="{{ show }}"
  position="top"
  custom-style="height: 60%;"
  close-on-click-overlay="{{true}}"
>
   <image src="../../image/index/yong.png"></image>
   <view>授权登录</view>
   <view>请授权小程序登录</view>
   <view>我们不会公布您的这些信息</view>
   <view>只是为了给您提供更好的服务</view>
   <button open-type="getUserInfo" bindgetuserinfo="GetUserInfo"
   style="background-color: green;color: white;">
      允许
   </button>
   <button bindtap="GetQuUserInfo">
     暂不登录
   </button>
</van-popup>

在login.js

Component({
  options:{
      multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
      
  },
  /**
   * 组件的初始数据
   */
  data: {
     show:true,

  },

  /**
   * 组件的方法列表
   */
  methods: {
    GetUserInfo:function(e){
      if (e.detail.userInfo) {
            this.getLogin()
            this.setData({ show: false });
      }else{
        //用户按了拒绝按钮
        wx.showModal({
          title:'警告',
          content:'您点击了拒绝授权,无法获取您的信息,请授权之后再进入!!!',
          showCancel:false,
          confirmText:'返回授权',
      })
      } 
    },
    GetQuUserInfo(){ //暂不登录
      this.setData({ show: false });
    },
    getLogin(){
      wx.login({
        success (res) {
            wx.request({
              url: 'https://api.it120.cc/wangkai/user/wxapp/login', //登录的url
              data: {
                code: res.code
              },
              success:function(res){
                 if(res.data.code==0){  //code为0代表成功
                    wx.setStorageSync("token",res.data.data.token)
                 }
              }
            })
        }
       })
    }
  },
   // 组件所在页面的生命周期函数
  pageLifetimes: {
    show: function() {
      // 页面被展示
      var value = wx.getStorageSync('token')
      if (value) {
        this.setData({ show: false });
      }
    },
    hide: function() {
      // 页面被隐藏
      var value = wx.getStorageSync('token')
      if (!value) {
        this.setData({ show: true });
      }
    },
  }
})

父级页面的.json文件中添加

{
  "usingComponents": {
      "login":"../login/login"
  }
}

在父级页面的.wxml文件中

<login>//这个是json中的名称,"login":"../login/login"
   <van-popup
  show="{{ show }}"
  position="top"
  custom-style="height: 60%;"
  close-on-click-overlay="{{true}}"
>
   <image src="../../image/index/yong.png"></image>
   <view>授权登录</view>
   <view>请授权小程序登录</view>
   <view>我们不会公布您的这些信息</view>
   <view>只是为了给您提供更好的服务</view>
   <button open-type="getUserInfo" bindgetuserinfo="GetUserInfo"
   style="background-color: green;color: white;">
      允许
   </button>
   <button bindtap="GetQuUserInfo">
     暂不登录
   </button>
</van-popup>
</login>

在.wxml中显示(样式不好看,可以忽略)
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值