微信小程序 - 模板与配置 介绍

文章目录

  • 模板与配置
    • 一、WXML模板语法
      • 1、WXML模板语法 - 数据绑定
      • 2、WXML模板语法 - 事件绑定
      • 3、WXML模板语法 - 条件渲染
      • 4、WXML模板语法 - 列表渲染
    • 二、WXSS模板样式
      • 1、WXSS模板样式 - rpx
        • 1.1 什么是 rpx 尺寸单位
        • 1.2 rpx 的实现原理
        • 1.3 rpx 与 px 之间的单位换算
      • 2、WXSS模板样式 - 样式导入
      • 3、WXSS模板样式 - 全局样式和局部样式
    • 三、全局配置
      • 1、全局配置 - window
      • 2、全局配置 - tabBar
    • 四、局部配置
      • 1、页面配置文件的作用
      • 2、页面配置和全局配置的关系
      • 3、页面配置中常用的配置项
    • 五、网络数据请求
      • 1、小程序中网络数据请求的限制
      • 2、配置 `request` 合法域名
      • 3、发起 GET 请求
      • 4、发起 POST 请求
      • 5、在页面刚加载时请求数据
      • 6、跳过 `request` 合法域名校验
      • 7、关于跨域和 Ajax 的说明

模板与配置

一、WXML模板语法

1、WXML模板语法 - 数据绑定

WXML 使用双花括号 {{...}} 进行数据绑定,可以将变量动态显示在页面上。

<view>{{ message }}</view>

在相应的页面的 .js 文件中,需要定义数据:

// 在页面的.js文件中
Page({data: {message: 'Hello, WXML!'}
});

2、WXML模板语法 - 事件绑定

WXML 支持事件绑定,使用 bindcatch 来绑定事件,例如点击按钮触发事件。

<button bindtap="handleTap">点击按钮</button>

在相应的页面的 .js 文件中,需要定义事件处理函数:

// 在页面的.js文件中
Page({handleTap: function () {console.log('按钮被点击了');}
});

3、WXML模板语法 - 条件渲染

使用 wx:ifwx:elsewx:elif 实现条件渲染,根据条件显示不同内容。

<view wx:if="{{ condition }}">条件成立时显示</view>
<view wx:else>条件不成立时显示</view>

在相应的页面的 .js 文件中,需要定义条件:

// 在页面的.js文件中
Page({data: {condition: true}
});

4、WXML模板语法 - 列表渲染

使用 wx:for 循环渲染列表,展示动态生成的内容。

<view wx:for="{{ array }}" wx:for-item="item" wx:for-index="index">{{ index }} - {{ item }}
</view>

在相应的页面的 .js 文件中,需要定义列表数据:

// 在页面的.js文件中
Page({data: {array: ['Apple', 'Banana', 'Orange']}
});

二、WXSS模板样式

1、WXSS模板样式 - rpx

1.1 什么是 rpx 尺寸单位

rpx 是小程序中的尺寸单位,它是相对长度单位,可以根据屏幕宽度进行自适应缩放。1rpx 在不同屏幕宽度下的物理像素大小是相等的,这使得设计师可以更方便地设计界面,而不用考虑不同设备的屏幕大小。

1.2 rpx 的实现原理

rpx 的实现原理是根据屏幕的宽度进行自适应缩放。小程序会将屏幕宽度分为 750 个逻辑像素(logical pixel),1rpx 就等于屏幕宽度的 1/750。因此,无论屏幕宽度是多少,1rpx 对应的物理像素都是相等的。

1.3 rpx 与 px 之间的单位换算

在小程序的设计稿中,通常会使用 750px 作为设计稿的宽度,这样 1rpx 就等于 1px。在实际开发中,可以使用下面的换算关系:

/* 在750px设计稿中,设置元素宽度为100px */
.example {width: 100rpx; /* 小程序中使用rpx单位 *//* 在编译后,小程序将自动进行换算为实际物理像素 */
}

通过这种方式,无论屏幕宽度是多少,设计稿中的 100rpx 都会被自动换算为相应的物理像素值。这种设计使得小程序在不同设备上都能保持良好的显示效果。

2、WXSS模板样式 - 样式导入

使用 @import 导入外部样式,保持样式模块化和可维护性。

@import 'common.wxss';

3、WXSS模板样式 - 全局样式和局部样式

定义全局样式和局部样式,通过 pageName.json 文件配置,确保页面样式的一致性。

/* 全局样式 */
body {font-size: 14rpx;
}/* 局部样式 */
.container {background-color: #fff;
}

三、全局配置

1、全局配置 - window

配置全局窗口属性,如导航栏颜色、背景色等,提供整体风格。

{"window": {"navigationBarBackgroundColor": "#000","navigationBarTextStyle": "white"}
}

window 节点常用的配置项

配置项作用示例
navigationBarBackgroundColor配置导航栏背景颜色。"navigationBarBackgroundColor": "#000"
navigationBarTextStyle配置导航栏标题颜色,仅支持 blackwhite"navigationBarTextStyle": "white"
navigationBarTitleText配置导航栏标题文字内容。"navigationBarTitleText": "首页"
backgroundColor配置窗口的背景颜色。"backgroundColor": "#f1f1f1"
backgroundTextStyle配置下拉 loading 的样式,仅支持 darklight"backgroundTextStyle": "dark"
enablePullDownRefresh配置是否开启下拉刷新。"enablePullDownRefresh": true
onReachBottomDistance配置页面上拉触底事件触发时距页面底部距离,单位为px。"onReachBottomDistance": 50
pageOrientation配置屏幕旋转设置,支持 auto、portrait、landscape。"pageOrientation": "auto"
disableScroll配置是否禁止页面滚动。"disableScroll": true

这些常用的 window 节点配置项可以通过在小程序的 app.json 文件中进行设置,以全局性地影响整个小程序的表现。

2、全局配置 - tabBar

配置全局底部导航栏,方便用户快速切换页面。

{"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/about/about","text": "关于"}]}
}

四、局部配置

1、页面配置文件的作用

页面配置文件(pageName.json)用于配置当前页面的特殊信息,如页面标题、导航栏颜色、引入自定义组件等。通过页面配置,可以使不同页面具有不同的显示效果和行为。

2、页面配置和全局配置的关系

全局配置文件(app.json)用于配置整个小程序的全局信息,如所有页面的基本配置。而页面配置文件则专门用于当前页面的特殊配置,它们之间形成了一种层级关系。在小程序加载页面时,会首先加载全局配置,然后再加载当前页面的局部配置,确保局部配置可以覆盖全局配置。

3、页面配置中常用的配置项

配置项作用示例
navigationBarTitleText配置页面导航栏标题,显示在导航栏中间。"navigationBarTitleText": "首页"
navigationBarBackgroundColor配置页面导航栏背景颜色。"navigationBarBackgroundColor": "#000"
usingComponents引入自定义组件,指定组件的路径。"usingComponents": { "custom-component": "/components/custom-component" }
onReachBottom监听用户上拉触底事件,在页面滚动到底部时触发。"onReachBottom": "onReachBottom"
enablePullDownRefresh配置是否启用下拉刷新功能。"enablePullDownRefresh": true
backgroundTextStyle下拉刷新时的样式,仅支持 darklight"backgroundTextStyle": "dark"
backgroundColor配置下拉刷新时的背景颜色。"backgroundColor": "#f1f1f1"

这些常用的页面配置项可以通过在相应页面的 pageName.json 文件中进行设置,以实现个性化的页面效果。

五、网络数据请求

1、小程序中网络数据请求的限制

小程序中网络数据请求有一些限制,包括域名限制、请求并发限制、请求超时限制等。确保了解这些限制,以便更好地处理数据请求。

另有如下两个特殊的限制:

  • 1、只能请求HTTPS类型的接口
  • 2、必须将接口的域名添加到信任列表中

2、配置 request 合法域名

在小程序开发中,需要在小程序管理后台配置合法域名,以确保可以向指定的域名发起网络请求。

配置步骤:登录微信小程序管理后台 -> 开发 -> 开发设置 -> 服务器域名 -> 修改 request 合法域名

注意事项:

① 域名只支持 https 协议

② 域名不能使用 IP 地址或 localhost

③ 域名必须经过 ICP 备案

④ 服务器域名一个月内最多可申请 5 次修改

3、发起 GET 请求

使用 wx.request 发起 GET 请求,可以通过设置 url 和其他参数来配置请求。

wx.request({url: 'https://api.example.com/data',method: 'GET',success: function (res) {console.log(res.data);},fail: function (error) {console.error(error);}
});

4、发起 POST 请求

使用 wx.request 发起 POST 请求,可以通过设置 urldata 和其他参数来配置请求。

wx.request({url: 'https://api.example.com/postData',method: 'POST',data: {key: 'value'},success: function (res) {console.log(res.data);},fail: function (error) {console.error(error);}
});

5、在页面刚加载时请求数据

在页面的生命周期函数 onLoad 中发起网络请求,确保在页面刚加载时获取所需数据。

Page({onLoad: function () {this.loadData();},methods: {loadData: function () {wx.request({url: 'https://api.example.com/data',method: 'GET',success: function (res) {console.log(res.data);},fail: function (error) {console.error(error);}});}}
});

6、跳过 request 合法域名校验

在开发阶段,可以通过在开发工具中的设置中关闭 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书 来跳过域名校验,方便开发时的调试。

7、关于跨域和 Ajax 的说明

小程序中存在跨域限制,不支持普通的跨域 Ajax 请求。需要在小程序管理后台配置合法域名,确保请求的域名在合法域名列表中。可以使用 wx.request 发起网络请求,或通过云函数等方式实现跨域请求。

确保了解以上内容,以便在小程序中合理发起和处理网络数据请求。

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

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

相关文章

wechatpay-java 部署linux报错

ruoyimall部署linux环境报错 报错现象 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name wechatPayService: Unsatisfied dependency expressed through field service; nested exception is org.springframework.beans.fa…

1024 科学计数法 (20)

科学计数法是科学家用来表示很大或很小的数字的一种方便的方法&#xff0c;其满足正则表达式 [-][1-9].[0-9]E[-][0-9]&#xff0c;即数字的整数部分只有 1 位&#xff0c;小数部分至少有 1 位&#xff0c;该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数…

南京观海微电子----时序图绘制工具

Wavedrom 是一款功能强大且简单易用的文本转图表工具&#xff0c;被广泛应用于生成时序图、波形图等交互式波形。其特点在于使用简单的文本语法&#xff0c;使得开发人员能够以可视化的方式表示数字信号和时间序列数据。Wavedrom 的优势在于其高度灵活性和可扩展性&#xff0c;…

【数据库】聊聊MySQL事务隔离级别与锁机制

概述 针对事务来说&#xff0c;其实主要解决的就是数据的一致性&#xff0c;对于任何的存储中间件来说&#xff0c;都会存在并发访问数据的问题&#xff0c;编程语言层面 juc、go等机制 使用编程上的方式&#xff0c;加锁、无锁编程等。而数据库也存在多个连接访问修改同一个数…

远程开发之端口转发

远程开发之端口转发 涉及的软件forwarded port 通过端口转发&#xff0c;实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段&#xff0c;填需要转发的IP:PORT&#xff0c;即可转发远程服务器中的内网端口到本…

24校招,得物测试开发工程师一面

前言 大家好&#xff0c;今天我来回顾一下之前参加的得物-测试开发工程师第一次技术面试 面试官上来跳过实习和项目经历&#xff0c;直接开始八股拷打&#xff0c;最喜欢这种简单直接的了&#xff0c;太好玩了 过程 自我介绍用的什么语言&#xff1f; Python&#xff0c;来…

openssl3.2 - 官方demo学习 - cms - cms_dec.c

文章目录 openssl3.2 - 官方demo学习 - cms - cms_dec.c概述笔记END openssl3.2 - 官方demo学习 - cms - cms_dec.c 概述 对用证书加密的CMS数据进行解密(也需要加密时用的那个证书) 笔记 /*! \file cms_dec.c * \note openssl3.2 - 官方demo学习 - cms - cms_dec.c 对用证…

将图片添加到 PDF 的 5 种方法

需要一种称为 PDF 编辑器的特定工具才能将图片添加到 PDF。尽管大多数浏览器在查看和注释 PDF 文件方面都非常出色&#xff0c;但如果您使用图像到 PDF 技术&#xff0c;则只能将照片放入 PDF 中。无需修改即可将 PDF 文件恢复为原始格式的能力是使用此类软件程序甚至在线服务的…

Doris 数据分布—Bucket(Tablet)

Doris 数据分布—Bucket(Tablet) 分桶的意义在于极大减少了数据的扫描范围、提高了查询的效率* 在 Doris 的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶)。每个 Tablet 包含若干数据行。各个 Tablet 之间的数据没有交集,并且在物理上是独立存…

[开发语言][c++]:Static关键字和全局变量

Static关键字和全局变量 1. 生命周期、作用域和初始化时机2. 全局变量3. Static 关键字3.1 面向过程3.1.1 静态全局变量3.1.2 静态局部变量&#xff08;单例中会使用&#xff09;3.1.3 静态函数 3.2 面向对象3.2.1 类内静态成员变量3.2.2 类内静态成员函数 Reference 写在前面&…

人机环境系统智能领域中的强度和角度

对于人工智能领域而言&#xff0c;强度和角度是两个重要的方面。 强度指的是人工智能技术的发展和应用程度。随着计算能力的提高和数据量的增加&#xff0c;人工智能在各个领域的应用正在不断增强。例如&#xff0c;深度学习和机器学习等技术的发展使得人工智能在图像识别、自然…

粒子物理和原子核物理的理论在模拟和分析电路中的粒子束和辐射效应中的应用

粒子物理和原子核物理的理论可以应用于模拟和分析电路中的粒子束和辐射效应&#xff0c;特别是在粒子加速器和辐射探测器的设计和优化方面。通过这些理论的应用&#xff0c;可以提高加速器和探测器的性能&#xff0c;推动粒子物理和原子核物理的研究进展。粒子物理和原子核物理…

OpenCV-24双边滤波

一、概念 双边滤波对于图像的边缘信息能够更好的保存。其原理为一个与空间距离相关的高斯函数与一个灰度距离相关的高斯函数相乘。 空间距离&#xff1a;指的是当前点与中心点的欧式距离。空间域的高斯函数及其数学形式为&#xff1a; 其中&#xff08;xi&#xff0c;yi&…

记redis5.x在windows上搭建集群(六主六从)

六个运行端口 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 1、安装redis,文章太多不多BB 2、复制六份redis文件夹出来改名 3、修改每一份的配置文件 redis.windows.conf 修改为以下格式&#xff1a; #运行端口 port…

kubeSphere DevOps部署vue项目

devops部署vue项目 &#x1f314;环境说明&#x1f30f;创建DevOps工程&#x1f30f;填写流水线信息&#x1f30f;创建流水线 &#x1f314;部署应用所需脚本JenkinsfileDockerfile &#x1f314;脚本一些参数如何设置说明&#x1f30f;deploy.yaml中的:imagePullSecrets:name属…

三、Qt Creator 使用

关于Qt的安装及环境配置&#xff0c;在我的上一篇《二、QT下载、安装及问题解决(windows系统)》已经讲过了。 本章节有一个重点&#xff0c;在新建 工程文件时&#xff0c;所在路径不要有中文&#xff0c;否则编译及运行程序不能正常运行。 在使用Qt Creator&#xff08;以下…

【电源专题】案例:ADC有两个量程,为什么选小量程而不用大量程?

案例背景:早期其他产品设计使用大量程3V ADC,但是外部的分压配置最大电压分压后仅仅只到1.6V左右,无法用到3V ADC量程。其主要原因是供应商提供说越往大量程走误差值越大,但正常的设计应该是要达到接近满量程(如文章:【电子通识】案例:采用电阻分压式采样电压的设计注意…

[GN] nodejs16.13.0版本完美解决node-sass和sass-loader版本冲突问题

项目场景&#xff1a; npm install 运行vue项目时候 问题描述 项目场景&#xff1a;sass-loader &#xff0c;node-sass出错 ! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: smoore-mes-web1.4.0 npm ERR! Found: webpack3.12.0 npm ER…

极简云源码已经开源

源码介绍 极简云已经开源 解绑卡密 查询卡密 总体来说还是很完善的 对接例子网盘里有 用户注册需要配置邮箱 上网页QQ邮箱标准版开启SMTP 然后生成授权码 后台发信邮箱里填就对了 实在不会配置邮箱的 可以下载网盘里的reg.php 把reg.php上传源码里的user目录 之后注册就不需要…

【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage时需要补充的基础知

在阅读论文&#xff1a;OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, …