zoukankan      html  css  js  c++  java
  • 微信小程序开发总结

    微信小程序开发

    1.数据绑定 {{ name}} ,和vue不同的是如果直接更改data并不会重新渲染,而是要使用setData({name:data})的方法

    2.调用组件的方法:

    • 获取元素:

       const ele = this.selectComponent(id)
      
    • 调用组建的method中的方法:

       ele.functionName()
      

    3.组件中的propertiesdata的区别:

    • 首先properties是外部可更改的属性,data外部不能修改
    • 两者用法差不多 都是this.data.name来取值

    4.小程序中的传参问题

    ​ 首先需要知道的是没有办法和vue中一样 使用函数名(参数)的形式实现,在小程序中如果想要传参数,则需要在绑定的元素中定义属性 data-参数名的形式,在回调函数中通过target.dataset属性获取,例如:

    <view data-streamId='{{stream.id}}' bindtap='test'></view>
    
    test: function (event) {
      console.log(event.target.dataset.streamid)
    }
    

    5.嵌套传参的问题:

     <view class='new-container' bindtap='update' data-name='{{item.name}}'>
      <view class='title'>{{item.title}}</view>
      <view class='num'>{{item.num}}</view>
      <view class='tips'>点击刷新</view>
    </view>
    

    在这里插入图片描述

    点击内容区域的时候,如果使用target来取值会出现空,而currentTarget则不会
    在这里插入图片描述

    在官方的文档上是这样介绍两者的在这里插入图片描述

    6关于setData()修改数组对象的操作, 一般setData()传入的是一个对象,如下name是作为了key的名称

    data:{
        name:'fa',
        array:[{name:'aa',num:1},{name:'bb',num:2}]
    }
    
    this.setData({
        name:'wx'
    })
    

    当我们只是想修改array数组中的num的值,这时候按照上面的就没法实现了, 这时候可以采用’array[0].num’:2来实现

    this.setData({
        ['array[0].num']:2
    })
    

    但是呢这个’0‘又是不能动态更改的,所以呢还是需要整体修改例如:

    for (var i = 0; i < this.data.increase.length; i++) {
      if (this.data.array[i].name == 'aa'){
        this.data.increase[i].num = 2
        break
      }
    }
    this.setData({
      array: this.data.array
    })
    
  • 相关阅读:
    55.UIbutton点击切换颜色
    54.NSJSONSerialization类进行json解析(字符串“UTF-8解码”)
    53.设置内容的行间距
    第二阶段冲刺7
    第二阶段冲刺6
    第十四周
    第二阶段冲刺5
    第二阶段冲刺4
    第二阶段冲刺3
    第二阶段冲刺2
  • 原文地址:https://www.cnblogs.com/FanMLei/p/10500972.html
Copyright © 2011-2022 走看看