微信小程序--day03

一、 小程序的开放能力

获取网络状态以及在线预览文档

Page({
  // 点击“预览文档”的按钮,触发tap回调
  tap: function() {
    wx.getNetworkType({
      success: function(res) {
        // networkType字段的有效值:
        // wifi/2g/3g/4g/unknown(Android下不常见的网络类型)/none(无网络)
        if (res.networkType == 'wifi') {
          // 从网络上下载文档
          wx.downloadFile({
            url:' https://lark-temp.oss-cn-hangzhou.aliyuncs.com/__temp/464110/docx/bb5d8e7d-97bc-406b-be94-ca2b4724c0e6.docx?OSSAccessKeyId=LTAI4GKnqTWmz2X8mzA1Sjbv&Expires=1644944885&Signature=qUYOtNWZOaopjkEFbcKpvgmn%2B1U%3D',
            success: function (res) {
 
              // 下载成功之后进行预览文档
              wx.openDocument({
                filePath: res.tempFilePath
              })
            }
          })
        } else {
          wx.showToast({ title: '当前为非Wifi环境' })
        }
      }
    })
  }
})

扫码能力--扫一扫

Page({
  // 点击“扫码订餐”的按钮,触发tapScan回调
  tapScan: function() {
    // 调用wx.login获取微信登录凭证
    wx.scanCode({
      success: function(res) {
        var num = res.result // 获取到的num就是餐桌的编号
      }
    })
  }
})

小程序分享

promise如果该参数存在,则以 resolve 结果为准,如果三秒内不 resolve,分享会使用上面传入的默认参数
Page({
  onShareAppMessage() {
    const promise = new Promise(resolve => {
      setTimeout(() => {
        resolve({
          title: '自定义转发标题'
        })
      }, 2000)
    })
    return {
      title: '自定义转发标题',
      path: '/page/user?id=123',
      promise 
    }
  }
})

朋友圈分享

onShareTimeline(){
 return {
      title: '自定义转发标题',
      path: '/page/user?id=123'
    }
}

二、自定义组件


1、创建组件

构造器使用的时Component

配置文件中设置component:true

2、引入组件

首先声明这个组件,在配置文件声明

"usingComponents": {   "my-button":"/components/MyButton/MyButton"},
3、设置插槽<slot></slot>

4、命名插槽

开启配置

Component({  options: {    multipleSlots: true // 在组件定义时的选项中启用多slot支持  },})// 使用的时候// 父组件<son> <view slot="名字"> </view> </son>// 子组件中<slot name="名字"></slot>

 

三、父子组件传值

父传子

//父
  <son1 today="周四"></son1>
//子接收
  properties: {
    today:{
    type:[Number,String],
    value:'默认'
   }
  },
//子
<view>父传子{{today}}</view>

子传父 

//子
<button bindtap="tofather">点击子传父</button>
<view>{{Behavior}}</view>
<view class="red">{{msg}}</view>
 methods: {
    tofather(){
      this.triggerEvent('myevent',"这是子传父")
    }
  }
//父
<son1 bind:myevent="myevent"></son1>
{{fromson}}
  //获取子传父
  myevent(res){
    console.log(res);
    this.setData({
      fromson:res.detail
    })
  },

四、Behaviors


behaviors 是用于组件间代码共享的特性,类似于一些编程语言中的 “mixins” 或 “traits”。

每个 behavior 可以包含一组属性、数据、生命周期函数和方法。组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。 每个组件可以引用多个 behavior ,behavior 也可以引用其它 behavior 
 

module.exports = Behavior({
  data:{
    Behavior:"Behavior",
    msg:"msg",
  },
  created(){
    //behavior的生命周期优先级要高
    console.log(123);
  },
 })
Component({
  behaviors:[Behavior],
  data: {
    msg:"msg1111",
  },
}
//组件中的msg会覆盖behavior中的msg

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值