【微信小程序】阶段开发总结

news2024/12/22 19:51:14

【微信小程序】阶段开发总结

《工欲善其事,必先利其器》

一、页面代码量过多的解决方案

最近开发的小程序页面里面包含非常多的代码,而且一个页面里面分为了很多步骤,根据不同的进度去显示不同的填写内容,因此,首先我想到的解决方案就是分组件开发:

分组件开发

由于组件之间时不时需要数据的交互,并且表单里面包含了字段的校验,所以我们需要用组件这种具有更多丰富的API方式来解决这种代码量巨多的场景。

另外一种方式就是采取 import wxml ,但是这种方案的缺点也很明显,就是数据传递方式非常单一,要通过在 template 标签上用 data=" " 传入。而且,它的JavaScript只能写在主页面的JavaScript文件里面:

目录结构
HTML结构

二、判断显示隐藏的解决方案

方案一:wx:if

这种方案基本上每个开发者都会不假思索的应用,但是,如果像表单这些数据,你填完数据之后需要条件切换显示隐藏的话,这时候隐藏,再显示,数据就没了。

这是因为 wx:if 是直接把DOM删除掉的,而不是 visibility: hidden 这种隐藏方式。

方案二:hidden

较第一种方式,这种方式原理是 visibility: hidden ,该CSS的表现是元素不可见,但仍占据文档流中的空间。所以,如果要将元素隐藏但保留其所占据的空间和数据,则是需要使用 hidden 的。

<view hidden="{{true}}"></view>

当判断条件为真时,元素不显示,数据保留。

三、组件之间交互的解决方案

方案一:properties,用于父组件向子组件传递数据;

方案二:triggerEvent,用于子组件向父组件反馈回调;

方案三:使用 getCurrentPages() 获取父组件的数据,再利用父组件注册一个方法,返回数据。

例如:

子组件:

const pages = getCurrentPages()
const prevUrl = pages[pages.length - 2]
prevUrl._countrySelect(e.currentTarget.dataset.address)

父组件:

// 监听子组件数据
_countrySelect(val) {
    console.log(val)
},

四、vantweapp表单校验的解决方案

vantweapp,error-message 垃圾。

WxValidate,垃圾。

如果你是有很多表单校验,里面有很多条件判断,但是又不得不使用这两个库时,建议你使用 WxValidate.prototype.checkMyRule 的方式自己去维护一套数据和校验的方法,否则你会很提痛苦。

五、关于wxs的应用

微信小程序支持的模板语言是 WXML,它只支持基本的逻辑和循环语句。为了满足开发者的一些高级需求,微信小程序引入了 wxs(小程序脚本),它类似于 JavaScript。

wxs 可以在 WXML 文件中被使用,并且具有以下功能:

  1. 在 wxml 中,运算符 / 表达式仅支持部分 JavaScript 运算符,而 wxs 中可以使用完整的 JavaScript 运算符。
  2. 由于 wxml 的限制,导致一些字符串截取、数组遍历等操作不太方便,而这些操作在 wxs 中更加方便。
  3. 部分复杂的业务逻辑可以封装在 wxs 中,减轻 WXML 中的代码量。

使用 wxs 的步骤如下:

  1. 在小程序项目中创建 .wxs 文件。
  2. 在需要使用 wxs 的 .wxml 文件中使用 wxs 标签引入 .wxs 文件,并设置模块名。
  3. 在 .wxs 文件中定义方法或变量,并使用 module.exports 导出。
  4. 在 .wxml 中使用 {{}} 绑定数据时调用 wxs 文件中的方法或变量。

例如,以下是 wxs 文件中定义函数并导出的示例:

var a = 1;
var b = 2;
var c = 3;

function sum(x, y) {
  return x + y;
}

module.exports = {
  a: a,
  b: b,
  c: c,
  sum: sum
}

在 .wxml 文件中引入并使用定义的函数和变量:

<wxs module="test">
  var test = require('./test.wxs');
</wxs>

<view>{{ test.a }}</view>
<view>{{ test.sum(test.b, test.c) }}</view>

以上代码展示了如何在 .wxml 中引入 wxs 文件并使用其中定义的变量和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/532093.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jenkins安装详细教程

Jenkins简介 Jenkins是一个开源的软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 1.持续的软件版本发布/测试项目 2.监控外部调用执行的工作 最近…

Redis 下载安装

一、redis介绍 redis官网地址&#xff1a;http://www.redis.cn/ Redis是当前比较热门的NoSQL系统之一它是一个开源的、使用ANSI C语言编写的key-value存储系统&#xff08;区别于MySQL的二维表格形式存储&#xff09;和Memcache类似&#xff0c;但很大程度补偿了Memcache的不…

k8s系列-前端镜像打包集成Jenkin spush到仓库

1.General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管理-->构建触发器-->构建环境-->构建-->构建后操作 General-->源码管…

阿里云ICP备案服务码在哪里申请查看?教程来了

阿里云备案服务码是什么&#xff1f;ICP备案服务码怎么获取&#xff1f;阿里云备案服务码分为免费和付费两种&#xff0c;申请备案服务码是有限制条件的&#xff0c;需要你的阿里云账号下有可用于申请备案服务码的云产品&#xff0c;如云服务器、建站产品、虚拟主机等&#xff…

详解C语言可变参数列表(stdarg头文件及其定义的宏)

前言&#xff1a;在一些函数定义时&#xff0c;&#xff08;&#xff09;内的参数并不是所有的函数参数都是唯一的&#xff0c;如printf函数的定义 这里的省略号就代表printf函数的参数是可以变化的&#xff0c;而对于一些函数其参数是固定的&#xff0c;如strlen 之所以有这样…

Go-Benchmark入门-进阶篇(下)

接上文&#xff1a;Go-Benchmark入门-基础篇&#xff08;上&#xff09; 引言 本篇是进阶篇&#xff0c;围绕最佳实践&#xff0c;介绍项目中可能会用得上的一些技巧和科普更多的 benchmark 知识&#xff0c;也是对本人半个多月实践的一次总结和备忘。 go版本&#xff1a; …

CBA 总决赛激战正酣,线上观赛体验如何保证?

近日&#xff0c;许多球迷都在关注着 CBA 总决赛的激烈赛况。浙江队在征战 CBA 28 年后首次闯入总决赛&#xff0c;并将决赛主场放在了即将承办杭州亚运会正式比赛的奥体中心场馆&#xff0c;使得这轮系列赛成为了浙江篮球史上浓墨重彩的一笔。也难怪球迷现场观赛热情高涨&…

孙鑫VC++第四章 2.简单绘图-绘制

目录 1. 按键消息 2. 绘制线条 2.1 利用SDK全局函数实现画线功能 2.2 利用MFC的CDC类实现画线功能 2.3 利用MFC的CClientDC类实现画线功能 2.4 利用MFC的CWindowDC类实现画线功能 3. 在桌面窗口中画线 3.1 绘制彩色线条 4. 使用画刷绘图 4.1 简单画刷 4.2 位图画刷 …

vue+elementui+nodejs医院疫情防控管理系统3935y

语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 互联网的飞速发展&#xff0c;使人们的生活离不开网络&#xff0c;医院的发展也同样是。现代医院中&#xff0c;不论大小都有各自的管…

想要快速开发东南亚市场?附见效快的方法

外贸人开发东南亚市场的超全指南&#xff0c;觉得有用的话&#xff0c;转发给身边的朋友哦&#xff5e; 一、8大开发东南亚客户的渠道 01 外贸客户开发系统 这个是目前主流的开发客户的渠道&#xff0c;也是效果最好的。可以根据产品关键字、HS编码、SCI编码通过在线数据库…

使用eclipse运行DBeaver源码

一、安装eclipse(rcp) 官网地址&#xff1a;https://www.eclipse.org/ 1、进入官网后点击downloads 2、点击Download Packages 3、选择版本&#xff1a;Eclipse IDE for RCP and RAP Developers 4、选择合适的镜像进行下载 5、找到下载的文件进行解压 6、找到解压后的文件…

Netty实战(一)

Nett的概念及体系结构 第一章 Java网络编程1.1 Java NIO1.2 选择器 第二章 Netty是什么2.1 Netty简介2.2 Netty的特性2.2.1 设计2.2.2 易于使用2.2.3 性能2.2.4 健壮性2.2.5 安全性2.2.6 社区驱动 2.3 Netty的使用者2.4 异步和事件驱动2.4.1 异步2.4.2 异步和伸缩性 第三章 Net…

企业缺少成本票的三个解决方式!

业务是流程&#xff0c;财税是结果&#xff0c;税收问题千千万&#xff0c;关注《税算盘》来帮你找答案。 成本票指的是计入要素费用的票据&#xff0c;主要是指直接或是间接计入生产成本或制造费用等多方面的发票和票据。简单来说成本票&#xff0c;就是企业销售商品后提供服…

MyBatis Plus 插件

一、分页插件 多个插件的情况下分页插件需要放到最后执行 1.1、增加分页插件配置 package com.xx.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplu…

IT项目管理工具推荐:选择最适合你的优秀工具

国际数据公司的一份报告指出&#xff0c;25%的IT项目彻底失败&#xff0c;这还不包括需要返工的50%的项目&#xff0c;也不包括20-25%未能提供投资回报的项目。众所周知&#xff0c;管理IT项目有很多挑战。以下是最常见的挑战&#xff1a; 1.学习曲线大 挑战&#xff1a; 由于I…

c#与NPOI

简介 操作指南 某些API参考 视频讲解 完整代码 1、简介 NPOI是源于一个用于读取xls,doc,ppt文档的POI 项目&#xff0c;POI是Java项目&#xff0c;后面因为有.Net的市场&#xff0c;于是将POI移植到.Net上。Npoi 可以在没有安装Office 的情况写 对 Word 或 Excel 文档进行读写…

《如何向ChatGPT提问并获得高质量的答案》—Prompt技术的完整指南

本教程收集于:AIGC从入门到精通教程 目录 第1章:提示工程技术简介 第2章:说明提示技术(Instructions Prompt Technique)

OpenPCDet系列 | 5.3 PointPillars算法——BaseBEVBackbone伪图像特征提取模块

文章目录 BaseBEVBackbone模块1. BaseBEVBackbone初始化2. BaseBEVBackbone前向传播 OpenPCDet的整个结构图&#xff1a; BaseBEVBackbone模块 在进行了bev视图的特征转换后&#xff0c;随后进行backbone2d模块进行进一步的特征处理&#xff0c;在PointPillars中选择的是Bas…

AI绘画小程序开发流程

最近市场上出现了很多AI绘画的小程序和APP&#xff0c;这些小程序使用起来非常方便&#xff0c;用户体验也不错&#xff0c;可以解决一部分用户的实际需求。今天和大家分享如何开发一个AI类的绘画小程序以及要注意的问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公…

电脑蓝屏怎么U盘重装系统详细图文教学

电脑蓝屏怎么U盘重装系统详细图文教学。很多用户遇到电脑蓝屏的问题之后&#xff0c;不懂怎么去进行问题的解决。蓝屏问题其实自己制作一起启动盘就可以轻松的解决问题了。一起来看看以下的详细处理方法分享吧。 准备工作&#xff1a; 1、U盘一个&#xff08;尽量使用8G以上的U…