微信小程序开发入门与实战 ⑩⑤(定义Data数据及监听器)

请添加图片描述

@作者 : SYFStrive

 
请添加图片描述

@博客首页 : HomePage

📜: 微信小程序

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗

💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞😀

请添加图片描述
在这里插入图片描述
相关专栏

👉 微信小程序(🔥)

定义数据、方法和属性

  1、data 数据

组件模板渲染的私有数据如 👇

/**
 * 组件的方法列表
 */
methods: {
    addCount(){
        this.setData({
            count:this.data.count+1
        })
        this._TiShi()
    },
    _TiShi(){
        wx.showToast({
          title: 'count是'+this.data.count
        })    
    }
},

  2、methods 方法

在小程序组件中,事件处理函数和自定义方法需要定义到 methods 节点中,

示例代码如 👇

/**
 * 组件的方法列表
 */
methods: {
    addCount(){
        this.setData({
            count:this.data.count+1
        })
        this._TiShi()
    },
    _TiShi(){
        wx.showToast({
          //注意这里是字符串不然报错
          title: 'count是'+ this.data.count
        })    
    }
},

  3、properties 属性

在小程序组件中,properties 是组件的对外属性,用来接收外界传递到组件中的数据。

示例代码如 👇

WXML
<text1 max="5"></text1> //默认值是15 这里设置最大值为5,覆盖了最大值

COMPONENT
<view>添加的值为:{{count}}</view>
<button bindtap="addCount">点击按钮</button>

JS

/**
 * 组件的属性列表
 */
properties: {
	//不能指定默认值
	//max:Number,
	//可以指定默认值
    max:{
        type:Number,
        value:15
    }
},

/**
 * 组件的方法列表
 */
methods: {
    addCount(){
        if(this.data.count>=this.properties.max) return;
        this.setData({
            count:this.data.count+1
        })
        this._TiShi()
    },
    //提示框
    _TiShi(){
        wx.showToast({
          title: 'count是'+this.data.count
        })    
    }
},

  4、data 和 properties 的区别

在小程序的组件中,properties 属性和 data 数据的用法相同,它们都是可读可写的 区别如 👇

  1. data 更倾向于存储组件的私有数据
  2. properties 更倾向于存储外界传递到组件中的数据

测试两者是否相等如 👇

/**
 * 组件的属性列表
 */
properties: {
    max:{
        type:Number,
        value:15
    }
},
/**
 * 组件的初始数据
 */
data: {
    count:1
},
proData(){
    console.log(this.data.max);
    console.log(this.data.count);
    console.log(this.data===this.properties);
}

  5、使用 setData 修改 properties 的值

由于 data 数据和 properties 属性在本质上没有任何区别,因此 properties 属性的值也可以用于页面渲染,或使用 setData 为 properties 中的属性重新赋值

示例代码如 👇

properties: {
  max:{
      type:Number,
      value:15
  }
},
methods: {
  addCount(){
      if(this.data.count>=this.properties.max) return;
      this.setData({
          count:this.data.count+1,
          max:this.properties.max+1
      })
  },
}

数据监听器

  1、什么是数据监听器

数据监听器用于监听和响应任何属性和数据字段的变化,从而执行特定的操作。它的作用类似于 vue 中的watch 侦听器。在小程序组件中

数据监听器的基本语法格式如 👇

在这里插入图片描述

  2、监听对象属性的变化

数据监听器支持监听对象中单个或多个属性的变化

代码实习


WXML-------------
<view class="ColorBox" style="background-color: rgb({{funllColor}});">颜色的值为:{{funllColor}}</view>

<button size="mini" bindtap="RValue" type="default">R</button>
<button size="mini" bindtap="GValue" type="primary">G</button>
<button size="mini" bindtap="BValue" type="warn">B</button>

<view>
颜色的RGB值为:{{rgbValue.r}}-{{rgbValue.g}}-{{rgbValue.b}}
</view>

WXSS-------------
<view class="ColorBox" style="background-color: rgb({{funllColor}});">颜色的值为:{{funllColor}}</view>

<button size="mini" bindtap="RValue" type="default">R</button>
<button size="mini" bindtap="GValue" type="primary">G</button>
<button size="mini" bindtap="BValue" type="warn">B</button>

<view>
颜色的RGB值为:{{rgbValue.r}}-{{rgbValue.g}}-{{rgbValue.b}}
</view>

WXJS-------------
// components/text1/text1.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
      rgbValue:{
        r:0,
        g:0,
        b:0
      },
      funllColor:'0,0,0'
  },

  observers:{
    "rgbValue.r, rgbValue.g,rgbValue.b":function(r,g,b){
      this.setData({
        funllColor:`${r},${g},${b}`
      })
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    RValue(){
      this.setData({
        "rgbValue.r":this.data.rgbValue.g+5 >255 ? 255: this.data.rgbValue.r+5
      })
  },
  GValue(){
    this.setData({
      "rgbValue.g":this.data.rgbValue.g+5 >255 ? 255: this.data.rgbValue.g+5
    })
  },
  BValue(){
    this.setData({
      "rgbValue.b":this.data.rgbValue.b+5>255 ? 255: this.data.rgbValue.b+5
    })
  },
  }
})

如 👇

在这里插入图片描述

最后

在这里插入图片描述
本文到这里就结束了,大佬们的支持是我持续更新的最大动力,希望这篇文章能帮到大家💪

 

         相关专栏连接🔗

在这里插入图片描述

下篇文章再见ヾ( ̄▽ ̄)ByeBye

在这里插入图片描述

  • 69
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 58
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SYFStrive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值