微信小程序实战之自定义模态弹窗(8)

yizhihongxing

关于“微信小程序实战之自定义模态弹窗(8)”,我将从以下几个方面进行详细讲解:

  1. 创建自定义模态弹窗组件
  2. 在需要使用的页面中引入自定义组件
  3. 调用自定义组件并传递参数
  4. 示例说明

1. 创建自定义模态弹窗组件

创建自定义组件有两种方式,一种是使用 wepy 进行开发,另一种是使用 原生 小程序开发方式。下面是使用 原生 小程序开发方式创建自定义模态弹窗组件:

首先,在 components 目录下新建一个文件夹,命名为 modal。在 modal 文件夹下新建两个文件:

  • modal.wxml:模态弹窗的结构
  • modal.wxss:模态弹窗的样式

然后,在 modal.wxml 文件中编写模态弹窗的结构,示例如下:

<view class="modal-wrapper" catchtouchmove="{{catchMove}}">
  <view class="modal-content">
    <view>{{title}}</view>
    <view>{{content}}</view>
    <button class="confirm-btn" bindtap="confirm">确定</button>
    <button class="cancel-btn" bindtap="cancel">取消</button>
  </view>
</view>

modal.wxss 文件中编写模态弹窗的样式,示例如下:

.modal-wrapper {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.5);
  z-index: 999;
}

.modal-content {
  width: 80%;
  max-width: 500rpx;
  min-height: 150rpx;
  border-radius: 10rpx;
  background-color: #fff;
  padding: 20rpx;
  text-align: center;
}

.confirm-btn {
  background-color: #007aff;
  color: #fff;
  border-radius: 5rpx;
  width: 45%;
  margin-top: 20rpx;
  margin-right: 5%;
  padding: 10rpx 0;
}

.cancel-btn {
  background-color: #fff;
  color: #007aff;
  border-radius: 5rpx;
  width: 45%;
  margin-top: 20rpx;
  margin-left: 5%;
  padding: 10rpx 0;
}

此外,还需要在 modal.js 文件中编写相应的逻辑代码:

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    title: {
      type: String,
      value: '提示'
    },
    content: {
      type: String,
      value: ''
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    catchMove: true
  },

  /**
   * 组件的方法列表
   */
  methods: {
    confirm: function() {
      this.triggerEvent('confirm');
    },
    cancel: function() {
      this.triggerEvent('cancel');
    }
  }
})

其中,confirmcancel 方法分别用于触发自定义事件,以便在父组件中监听并处理相应的逻辑。需要注意的是,父组件中监听自定义事件时的方法名应该是 confirm 或者 cancel

2. 在需要使用的页面中引入自定义组件

在需要使用模态弹窗的页面中,可以在 json 文件中配置引入:

{
  "usingComponents": {
    "modal": "路径/modal/modal"
  }
}

其中,路径 是指引入模态弹窗组件的路径,需要根据实际情况进行配置。这样,在需要使用模态弹窗的页面中就可以使用 modal 标签进行调用了。

3. 调用自定义组件并传递参数

在使用模态弹窗时,需要通过 modal 组件标签的属性来传递参数。示例如下:

<modal title="提示" content="确定删除吗?" bind:confirm="onConfirm" bind:cancel="onCancel"></modal>

其中,title 属性用于设置模态弹窗的标题,content 属性用于设置模态弹窗的提示内容。bind:confirmbind:cancel 属性用于监听组件的确认和取消操作,并触发相应的事件。

需要注意的是,确认和取消事件触发时可以通过事件对象传递一些额外的数据,如下所示:

// 在组件中触发事件,并传递额外数据
this.triggerEvent('confirm', { data: 123 });

// 在父组件中监听事件,并获取额外数据
onConfirm: function(event) {
  var data = event.detail.data;
}

4. 示例说明

下面通过两个示例来说明如何使用自定义模态弹窗组件。

示例一:删除操作

在一个类似于用户中心的页面中,要实现删除某个列表项的功能。首先,在界面上添加一个删除按钮,并绑定点击事件:

<button bindtap="deleteItem">删除</button>

然后,定义对应的事件处理函数,弹出模态弹窗:

deleteItem: function() {
  this.setData({
    showModal: true
  });
}

在数据绑定中添加 showModal 属性,用于控制模态弹窗的显示和隐藏:

<modal title="提示" content="确定删除吗?" bind:confirm="onConfirm" bind:cancel="onCancel" hidden="{{!showModal}}"></modal>

在事件处理函数中,监听 confirm 事件,触发删除操作,然后关闭模态弹窗:

onConfirm: function() {
  // 执行删除操作
  ...

  // 关闭模态弹窗
  this.setData({
    showModal: false
  });
},

onCancel 处理函数中,仅需要关闭模态弹窗即可:

onCancel: function() {
  this.setData({
    showModal: false
  });
},

示例二:修改用户名

在一个用户个人信息页面中,要实现修改用户名的功能。首先,在界面上添加一个修改按钮,并绑定点击事件:

<button bindtap="updateName">修改</button>

然后,在事件处理函数中弹出模态弹窗:

updateName: function() {
  this.setData({
    showModal: true
  });
}

在模态弹窗的标题和提示内容中,分别设置相应的提示信息:

<modal title="修改用户名" content="请输入新的用户名:" bind:confirm="onConfirm" bind:cancel="onCancel" hidden="{{!showModal}}"></modal>

然后,在 onConfirm 处理函数中获取用户输入的新用户名,进行验证并执行相应的操作:

onConfirm: function(event) {
  var newUserName = event.detail.value;

  // 进行新用户名的验证操作
  ...

  // 执行用户名修改操作
  ...

  // 关闭模态弹窗
  this.setData({
    showModal: false
  });
},

onCancel 处理函数中,仅需要关闭模态弹窗即可:

onCancel: function() {
  this.setData({
    showModal: false
  });
},

至此,关于“微信小程序实战之自定义模态弹窗(8)”的完整攻略就讲解完毕了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序实战之自定义模态弹窗(8) - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • Javascript的表单验证长度

    JavaScript的表单验证长度是前端开发中常用的技术,它可以通过一些JS函数获取表单文本框中填写的内容,并且进行判断和验证,避免用户输入的内容过长或者过短或者为空等情况,同时这也是一种常见的防止恶意攻击的方法。下面是一些可能用到的JS函数和示例说明。 1.获取文本框的内容 可以使用document.getElementById()来获取某一个ID的元素,…

    JavaScript 2023年6月10日
    00
  • JavaScript中错误正确处理方式小结你用对了吗

    让我来详细讲解一下 “JavaScript中错误正确处理方式小结你用对了吗” 这个话题。 标题 JavaScript中错误正确处理方式小结你用对了吗 简介 在JavaScript中,错误处理一直是一个非常重要的主题。如果没有适当的错误处理,代码可能会运行失败或者执行不完整。因此,正确处理错误是每个JavaScript开发人员的必修课程。 常见错误类型 在Ja…

    JavaScript 2023年5月28日
    00
  • document.getElementById的一些细节

    当我们在JavaScript中使用DOM操作时,document.getElementById方法是最基本且常用的方法之一,主要用于通过元素的ID获取该元素对象。 下面是一些document.getElementById的细节: 获取不存在的ID时返回null 当我们使用document.getElementById获取ID并且此ID不存在的时候,该方法会返…

    JavaScript 2023年6月10日
    00
  • javascript实现的简易的DatePicker日历

    下面是javascript实现的简易DatePicker日历的完整攻略: 1. 前言 DatePicker(日期选择器)在web应用中是一个非常常见的功能,它可以方便用户选择指定日期,并以统一的格式显示。本文将介绍如何使用javascript实现一款简易的DatePicker。 2. 实现思路 在实现DatePicker时,我们需要做以下几个步骤: 创建一个…

    JavaScript 2023年5月27日
    00
  • JavaScript中的this关键字使用方法总结

    当我们编写 JavaScript 代码时,经常需要访问当前函数上下文中的数据。为了做到这一点,JavaScript 提供了一个关键字 this。this 关键字表示当前函数所在的对象,它包含了当前函数执行时所依存的上下文信息。在 JavaScript 中,this 关键字的使用非常重要,学会正确地使用 this 关键字对于编写高质量的代码非常重要。 下面是 …

    JavaScript 2023年5月28日
    00
  • 在JavaScript里嵌入大量字符串常量的实现方法

    在JavaScript中,我们通常会使用字符串常量来表示一些静态的文本信息,例如错误提示、确认提示等等。当我们需要处理大量的字符串常量时,如果直接在JavaScript文件中编写这些字符串,不仅容易造成代码混乱,而且不易维护。为了解决这个问题,我们可以将这些字符串常量存储在单独的文件中,再通过一些手段将其引入到JavaScript文件中,以下是实现方法的详细…

    JavaScript 2023年5月28日
    00
  • json数据的列循环示例

    下面是关于json数据的列循环示例的完整攻略,包含两条示例说明。 JSON数据的列循环示例 什么是JSON? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于一个子集的JavaScript编程语言,易于读取和编写。 JSON格式是失效的,意味着基于所有现代编程语言的解析器都可以读取和解析JSON数据格式。…

    JavaScript 2023年5月27日
    00
  • 浅谈layui 绑定form submit提交表单的注意事项

    浅谈layui 绑定form submit提交表单的注意事项 简介 Layui是一个简洁易用、界面优美的前端UI框架,由于其易于上手,成为了很多前端工程师首选框架之一。在Layui中,表单提交是一个常见的操作,而绑定表单提交的事件则是经常使用到的操作。本文将会简单介绍在Layui中,绑定form submit提交表单的注意事项。 使用方式 通常情况下,在La…

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部