【微信小程序】基础篇 -- 自定义组件 -- 数据、方法和属性(三十三)

请添加图片描述

  • 💌 所属专栏:【微信小程序开发教程】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩

在这里插入图片描述


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【微信小程序开发教程】专栏的第33篇文章;
  今天开始学习微信小程序的第17天💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【微信小程序开发教程】, 此专栏是我是夜阑的狗微信小程序开发过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏,【源代码下载地址】


一、自定义组件 - 数据、方法和属性

  前面已经学习了小程序中的自定义组件 – 创建与引用&样式,通过栗子了解到组件全局引用和局部引用,以及组件和页面之间的区别,还有页面、组件样式之间的隔离。接下来就来讲解一下另外一个自定义组件 - 数据、方法和属性。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、data 数据

  在小程序组件中,用于组件模板渲染的私有数据,需要定义到 data 节点中,具体代码如下:

test1.js

Component({
  /**
   * 组件的初始数据
   */
  data: {
    count: 0
  },
})

2、methods 方法

  在小程序组件中,事件处理函数和自定义方法需要定义到 methods 节点中,这里通过按钮自加1的栗子来了解一下,而且点击按钮时候还要有弹窗提示 count 值,具体代码如下:

test1.wxml

<view>count当前的值是:{{count}}</view>
<button bindtap="addCount">+1</button>

test1.js

  组件的方法列表可以包含事件处理函数和自定义方法,一般自定义方法都建议以 _ 开头,方便与事件处理函数进行区分。

Component({
  /**
   * 组件的方法列表
   */
  methods: {
    // 点击事件处理函数
    addCount(){
      this.setData({
        count: this.data.count + 1
      });
      this._showCount();
    },
    // 自定义方法
    _showCount(){
      wx.showToast({
        title: 'count值为:' + this.data.count,
        icon: 'none'
      })
    }
  }
})

  当点击按钮就有弹窗提示当前 count 值,可以来看一下运行效果:

在这里插入图片描述

3、properties 属性

  在小程序组件中,properties 是组件的对外属性,常用来接收外界传递到组件中的数据,定义方式有以下两种:

  • 完整定义

  完整定义方式是可以指定属性的数据类型和默认值。

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    max: {
      type: Number, // 属性值的数据类型
      value: 10  // 属性默认值
    },
  },
})
  • 简化定义

  简化定义属性只是指定属性的数据类型而已。

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    max:Number 
  },
})

  当需要知道属性默认值时,建议使用完整定义属性,而不需要指定属性默认值时,可以使用简化方式。

  这里以完整定义为例,当点击按钮加到最大值时,就不能在加了,具体代码如下:

message.wxml

  给组件传递最大值参数

<view></view>
<my-test1 max="9"></my-test1>

test1.js

Component({
  /**
   * 组件的方法列表
   */
  methods: {
    // 点击事件处理函数
    addCount(){
      if(this.data.count >= this.properties.max) return;
      this.setData({
        count: this.data.count + 1
      });
      this._showCount();
    },
    // 自定义方法
    _showCount(){
      wx.showToast({
        title: 'count值为:' + this.data.count,
        icon: 'none'
      })
    }
  }
})

  当 count 累加到 9 时,再点击按钮就不会生效了,可以来看一下实际运行效果:

请添加图片描述

4、data 和 properties 的区别

  在 Vue 中 data 是组件的私有数据,properties 是外界传到组件的数据,同时,对于组件来说,data 是可读可写的,而 properties 是只读的。
  但在小程序的组件中,properties 属性和 data 数据的用法相同,它们都是可读可写的,只不过:

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

  下面通过一个栗子来说明小程序中 data 和 properties都指向同一对象,具体代码如下:

test1.wxml

<button bindtap="showInfo">showInfo</button>

test1.js

  当 data 和 properties 的对比结果为 true 时,说明这两者都指向同一个对象。

Component({
  /**
   * 组件的方法列表
   */
  methods: {
    showInfo(){
      console.dir(this.data);
      console.dir(this.properties);
      console.dir(this.data === this.properties);
    },
  }
})

  可以发现 data 和 properties 都打印出相同的值,而且结果为 true ,说明这两者都是可读可写的,来看一下运行结果:

在这里插入图片描述

5、使用 setData 修改 properties 的值

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

test1.wxml

  在组件的 wxml 文件中使用 properties 属性的值。

<view>max属性的值是:{{max}}</view>

test1.js

   使用 setData 修改属性的值。

Component({
  /**
   * 组件的方法列表
   */
  methods: {
    // 点击事件处理函数
    addCount(){
      if(this.data.count >= this.properties.max) return;
      this.setData({
        count: this.data.count + 1,
        max: this.properties.max,
      });
      this._showCount();
    },
  }
})

   当点击 +1 按钮的时候,count 和 max 都会进行 +1 操作,可以来看一下运行效果:

在这里插入图片描述


总结

  感谢观看,这里就是常用的视图容器类组件的介绍使用,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:



订阅更多,你们将会看到更多的优质内容!!

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微信小程序是一种基于微信平台的应用的开发模式,可以快速的开发出符合用户需求的小程序。在小程序的开发中,组件是一个非常重要的概念,通过组件可以实现复用性和模块化编程思想。 组件应用是小程序开发的基础。通过组件可以将某一模块化并封装起来,使得组件可以在不同的页面间得到复用,大大提升了开发效率并减少了代码冗余。微信小程序提供了丰富的自带组件,包括文本、图片、按钮、输入框等等,开发者也可以自己开发组件来满足自己的需求。实际开发中,通过组件可以快速搭建页面框架和业务逻辑。 Demo是一个演示小程序的示例程序。在小程序的实际开发过程中,一个好的Demo非常重要。通过Demo,开发人员可以更深入的了解小程序的开发流程、组件的应用和实际的业务开发等等。在Demo中,通常会包括小程序的一些基础操作,如页面跳转、数据绑定、组件的使用等。而在实际开发中,Demo还会包括一些复杂的业务场景,如支付、登录、数据列表展示等等。Demo不仅为开发者提供了学习和实践的机会,也方便了使用者了解该小程序的功能和特点。 总之,微信小程序组件的应用和Demo的开发都是小程序开发过程中非常重要的两个部分。良好的组件应用和精心设计的Demo,可以在极短的时间内实现小程序开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我是夜阑的狗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值