微信小程序开发入门与实战(数据监听)

简介: 微信小程序开发入门与实战(数据监听)

数据、方法和属性


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<text1max="5"></text1>//默认值是15这里设置最大值为5,覆盖了最大值COMPONENT<view>添加的值为:{{count}}</view><buttonbindtap="addCount">点击按钮</button>JS/***组件的属性列表*/properties: {
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 侦听器。在小程序组件中

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

'字段A''字段B':function(A值,B值){
}

2、监听对象属性的变化

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

代码实习

WXML-------------<viewclass="ColorBox"style="background-color: rgb({{funllColor}});">颜色的值为:{{funllColor}}</view><buttonsize="mini"bindtap="RValue"type="default">R</button><buttonsize="mini"bindtap="GValue"type="primary">G</button><buttonsize="mini"bindtap="BValue"type="warn">B</button><view>颜色的RGB值为:{{rgbValue.r}}-{{rgbValue.g}}-{{rgbValue.b}}
</view>WXSS-------------<viewclass="ColorBox"style="background-color: rgb({{funllColor}});">颜色的值为:{{funllColor}}</view><buttonsize="mini"bindtap="RValue"type="default">R</button><buttonsize="mini"bindtap="GValue"type="primary">G</button><buttonsize="mini"bindtap="BValue"type="warn">B</button><view>颜色的RGB值为:{{rgbValue.r}}-{{rgbValue.g}}-{{rgbValue.b}}
</view>WXJS-------------//components/text1/text1.jsComponent({
/***组件的属性列表*/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    })
  },
  }
})

如 👇

4.gif

最后


image.png

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

image.png

相关文章
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
740 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
771 1
|
2月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
261 1
|
2月前
|
小程序 前端开发 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【10月更文挑战第3天】随着移动互联网的发展,微信小程序凭借便捷的用户体验和强大的社交传播能力,成为企业拓展业务的新渠道。本文探讨了小程序全栈开发中的身份认证与授权机制,包括手机号码验证、微信登录、第三方登录及角色权限控制等方法,并强调了安全性、用户体验和合规性的重要性,帮助开发者更好地理解和应用这一关键技术。
95 5
|
2月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1142 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
小程序 JavaScript 开发工具
|
2月前
|
存储 小程序 安全
微信的开发管理都需要配置什么?
【10月更文挑战第17天】微信的开发管理都需要配置什么?
39 0
|
2月前
|
JavaScript 小程序 开发者
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
uni-app开发实战:利用Vue混入(mixin)实现微信小程序全局分享功能,一键发送给朋友、分享到朋友圈、复制链接
516 0
|
2月前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
694 0
|
2月前
|
小程序 前端开发 测试技术
微信小程序的开发完整流程是什么?
微信小程序的开发完整流程是什么?
162 7