微信小程序教学系列(2)

第二章:小程序开发基础

1. 小程序页面布局与样式

在小程序开发中,我们可以使用 WXML(WeiXin Markup Language)和 WXSS(WeiXin Style Sheet)来定义页面的布局和样式。

1.1 WXML基础

WXML 是一种类似于 HTML 的标记语言,用于描述小程序的结构。以下是一些常用的 WXML 标签:

  • <view>:用于替代 HTML 中的 <div> 标签,表示一个视图容器。
  • <text>:用于显示文本内容。
  • <image>:用于显示图片。
  • <button>:用于创建按钮。
  • <input>:用于创建输入框。

下面是一个简单的 WXML 示例:

<view><text>欢迎来到小程序</text><image src="https://example.com/logo.png"></image><button bindtap="handleClick">点击按钮</button>
</view>

1.2 WXSS基础

WXSS 是一种类似于 CSS 的样式语言,用于修饰小程序的样式。以下是一些常用的 WXSS 样式属性:

  • font-size:设置字体大小。
  • color:设置字体颜色。
  • background-color:设置背景颜色。
  • widthheight:设置元素的宽度和高度。
  • marginpadding:设置元素的外边距和内边距。
  • border:设置元素的边框样式。

下面是一个简单的 WXSS 示例:

.view {width: 200rpx;height: 200rpx;background-color: #f1f1f1;margin: 20rpx;padding: 10rpx;border: 1rpx solid #ccc;
}.text {font-size: 16rpx;color: #333;
}.image {width: 100rpx;height: 100rpx;
}

1.3 小程序页面布局与样式实例

接下来,我们通过一个实例来演示小程序的页面布局与样式。

首先,创建一个名为 index 的页面,使用 <view> 来作为根容器,然后在其中添加一些文本和图片:

<view class="container"><text class="title">欢迎来到小程序</text><image class="logo" src="https://example.com/logo.png"></image>
</view>

然后,创建名为 index.wxss 的样式文件,在 index.wxss 文件中,我们为容器和文本添加样式:

.container {width: 300rpx;height: 300rpx;background-color: #f1f1f1;margin: 20rpx;padding: 10rpx;border: 1rpx solid #ccc;
}.title {font-size: 20rpx;color: #333;margin-bottom: 10rpx;
}.logo {width: 200rpx;height: 200rpx;
}

以上就是小程序页面布局与样式的基础知识。通过使用 WXML 和 WXSS,我们可以灵活地创建出自己想要的页面布局和样式。

2. 小程序组件的使用

在小程序开发中,组件是构建页面的基本单元。小程序提供了丰富的组件库,包括基础组件和扩展组件,可以满足各种页面需求。

2.1 基础组件

小程序的基础组件包括常用的视图组件、表单组件、导航组件等。以下是一些常用的基础组件示例:

  • <view>:视图容器,用于包裹其他组件。
  • <text>:用于显示文本内容。
  • <button>:按钮组件,用于触发事件。
  • <input>:输入框组件,用于用户输入。
  • <image>:图片组件,用于显示图片。
  • <swiper>:轮播组件,用于展示图片轮播。
  • <scroll-view>:可滚动视图区域组件。

2.2 扩展组件

除了基础组件,小程序还提供了一些扩展组件,用于满足更复杂的页面需求。以下是一些常用的扩展组件示例:

  • <icon>:图标组件,用于显示图标。
  • <progress>:进度条组件,用于展示进度。
  • <picker>:选择器组件,用于选择数据。
  • <picker-view>:滚动选择器组件,用于滚动选择数据。
  • <slider>:滑动条组件,用于选择范围。
  • <textarea>:多行输入框组件,用于输入多行文本。

2.3 使用组件的步骤

要使用组件,首先需要在页面的 WXML 中引入组件的标签,并设置相应的属性。例如,要使用 <button> 组件,可以在 WXML 中添加以下代码:

<button type="primary" bindtap="handleClick">点击按钮</button>

然后,在对应的页面的 JS 文件中编写事件处理函数。例如,我们可以编写一个名为 handleClick 的函数来处理点击事件:

Page({handleClick: function() {console.log('按钮被点击');}
})

最后,可以在对应的 WXSS 文件中为组件添加样式。例如,我们可以为 <button> 组件添加以下样式:

button {background-color: #ff0000;color: #ffffff;padding: 10rpx 20rpx;
}

通过以上步骤,我们就可以使用小程序提供的组件,并对其进行相应的配置和样式设置。

3. 数据绑定和列表渲染

在小程序中,我们可以使用数据绑定和列表渲染来动态地展示和更新页面的内容。

3.1 数据绑定

数据绑定是将数据和页面元素进行关联,使得页面可以根据数据的变化而动态更新。在小程序中,我们可以使用双大括号({{}})来进行数据绑定。以下是一些常见的数据绑定的用法:

  • 文本绑定:将数据绑定到文本节点中,实现动态显示数据。
<view>{{message}}</view>
  • 属性绑定:将数据绑定到元素的属性中,实现动态设置属性值。
<image src="{{imageUrl}}"></image>
  • 事件绑定:将数据绑定到事件处理函数中,实现动态处理事件。
<button bindtap="{{handleClick}}">点击按钮</button>

在对应的 JS 文件中,我们可以定义与数据绑定相关的数据和处理函数。例如,以下是一个简单的例子:

Page({data: {message: 'Hello World',imageUrl: 'https://example.com/logo.png'},handleClick: function() {console.log('按钮被点击');}
})

3.2 列表渲染

列表渲染是将数据列表动态地展示在页面中。在小程序中,列表渲染可以使用 wx:for 指令来实现。以下是使用列表渲染的一些常用示例:

  • 渲染数组:将数组中的每个元素渲染为列表项。
<view wx:for="{{list}}" wx:for-item="item" wx:for-index="index"><text>{{index}} - {{item}}</text>
</view>
  • 渲染对象:将对象的属性值渲染为列表项。
<view wx:for="{{obj}}" wx:for-item="value" wx:for-index="key"><text>{{key}} - {{value}}</text>
</view>
  • 使用 wx:key 绑定唯一标识符:为每个列表项绑定一个唯一的标识符,以便在有变动时能够正确更新。
<view wx:for="{{list}}" wx:for-item="item" wx:for-index="index" wx:key="index"><text>{{index}} - {{item}}</text>
</view>

在对应的 JS 文件中,我们可以定义一个数据列表,并将其绑定到页面中。例如:

Page({data: {list: ['苹果', '香蕉', '橙子'],obj: {name: '小明',age: 18,gender: '男'}}
})

通过以上步骤,我们就可以实现数据的动态绑定和列表的渲染。

4. 事件处理和交互

在小程序中,我们可以通过事件处理函数来响应用户的操作,并实现交互效果。

4.1 事件绑定

小程序提供了一系列的事件类型,如点击事件、触摸事件、表单事件等。我们可以通过在对应的 WXML 元素上绑定相应的事件处理函数来处理这些事件。以下是一些常见的事件绑定示例:

  • 点击事件:bindtapcatchtap,在元素被点击时触发。
<button bindtap="handleClick">点击按钮</button>
  • 触摸事件:bindtouchstartbindtouchmovebindtouchend 等,分别在触摸开始、触摸移动、触摸结束时触发。
<view bindtouchstart="handleTouchStart">触摸开始</view>
  • 表单事件:bindinputbindsubmit 等,用于处理表单输入和提交。
<input bindinput="handleInput" placeholder="请输入内容"></input>

4.2 事件对象

在事件处理函数中,我们可以通过参数获取事件对象,并获取相关信息。事件对象包含了触发事件的元素信息、触摸点信息等。

以下是一些常用的事件对象属性:

  • currentTarget:当前触发事件的元素。
  • target:实际触发事件的元素,可能与 currentTarget 不同。
  • type:事件类型,如 taptouchstartinput 等。
  • timeStamp:事件触发的时间戳。
  • touches:触摸点的信息,包括触摸点的数量、位置等。

我们可以通过事件对象来获取这些属性,以便在事件处理函数中进行相应的操作。以下是一个示例:

handleClick: function(event) {console.log('点击事件被触发');console.log('当前触发事件的元素:', event.currentTarget);console.log('实际触发事件的元素:', event.target);console.log('事件类型:', event.type);console.log('事件触发的时间戳:', event.timeStamp);
}

4.3 页面跳转

在小程序中,我们可以通过内置的 navigateToredirectToreLaunch 等方法来实现页面之间的跳转。以下是一些常用的页面跳转示例:

  • navigateTo:跳转到新页面,可以返回上一级页面。
wx.navigateTo({url: '/pages/detail/detail'
})
  • redirectTo:关闭当前页面,跳转到新页面。
wx.redirectTo({url: '/pages/home/home'
})
  • reLaunch:关闭所有页面,重新打开新页面。
wx.reLaunch({url: '/pages/login/login'
})

在对应的 JS 文件中,我们可以在事件处理函数中调用相应的页面跳转方法,以实现页面之间的跳转效果。

通过以上步骤,我们可以实现简单的事件处理和页面跳转,从而实现小程序的交互效果。

本章节介绍了小程序开发基础中的页面布局与样式、组件的使用、数据绑定与列表渲染、事件处理和页面跳转。掌握了这些基础知识,我们就可以开始开发小程序,并实现丰富多样的功能。

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

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

相关文章

Python Opencv实践 - 图像直方图自适应均衡化

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/cat.jpg", cv.IMREAD_GRAYSCALE) print(img.shape)#整幅图像做普通的直方图均衡化 img_hist_equalized cv.equalizeHist(img)#图像直方图自适应均衡化 #1. 创…

laravel实现AMQP(rabbitmq)生产者以及消费者

基于php-amqplib/php-amqplib组件适配laravel框架的amqp封装库 支持便捷可配置的队列工作模式 官网详情 在此基础上可支持延迟消息、死信队列等机制。 环境要求&#xff1a; PHP版本: ^7.3|^8.0 需要开启的扩展: socket 其他: 如果需要实现延迟任务需要安装对应版本的ra…

js中?.、??、??=的用法及使用场景

上面这个错误&#xff0c;相信前端开发工程师应该经常遇到吧&#xff0c;要么是自己考虑不全造成的&#xff0c;要么是后端开发人员丢失数据或者传输错误数据类型造成的。因此对数据访问时的非空判断就变成了一件很繁琐且重要的事情&#xff0c;下面就介绍ES6一些新的语法来方便…

[Stable Diffusion教程] 第一课 原理解析+配置需求+应用安装+基本步骤

第一课 原理解析配置需求应用安装基本步骤 本次内容记录来源于B站的一个视频 以下是自己安装过程中整理的问题及解决方法&#xff1a; 问题&#xff1a;stable-diffusion-webui启动No Python at ‘C:\xxx\xxx\python.exe‘ 解答&#xff1a;打开webui.bat 把 if not de…

“深入探索JVM内部机制:理解Java虚拟机的工作原理“

标题&#xff1a;深入探索JVM内部机制&#xff1a;理解Java虚拟机的工作原理 摘要&#xff1a;本文将深入探索Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;讲解JVM的工作原理&#xff0c;并通过示例代码帮助读者更好地理解JVM的工作过程。 正文&#xff1a;…

ARM-汇编指令

一&#xff0c;map.lds文件 链接脚本文件 作用&#xff1a;给编译器进行使用&#xff0c;告诉编译器各个段&#xff0c;如何进行分布 /*输出格式&#xff1a;32位可执行程序&#xff0c;小端对齐*/ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm",…

StreamingWarehouse的一些思考和未来趋势

300万字&#xff01;全网最全大数据学习面试社区等你来&#xff01; 一篇笔记。 以Hudi、Iceberg、Paimon这几个框架为例&#xff0c;它们支持高效的数据流/批读写、数据回溯以及数据更新。具备一些传统的实时和离线数仓不具备的特性&#xff0c;主要有几个方面&#xff1a; 这…

Day 59

Day 59 503.下一个更大元素II 将两个nums数组拼接在一起&#xff0c;使用单调栈计算出每一个元素的下一个最大值&#xff0c;最后再把结果集即result数组resize到原数组大小就可以了。 class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:resu…

自然语言处理从入门到应用——LangChain:索引(Indexes)-[检索器(Retrievers)]

分类目录&#xff1a;《自然语言处理从入门到应用》总目录 检索器&#xff08;Retrievers&#xff09;是一个通用的接口&#xff0c;方便地将文档与语言模型结合在一起。该接口公开了一个get_relevant_documents方法&#xff0c;接受一个查询&#xff08;字符串&#xff09;并返…

(3)、SpringCache源码分析

1、入口说明 @EnableCaching是开启SpringCache的一个总开关,开启时候我们的缓存相关注解才会生效,所以我们@EnableCaching开始作为入口进行分析, 2、分析@EnableCaching注解 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Import(

Python“牵手”唯品会商品列表数据,关键词搜索唯品会API接口数据,唯品会API接口申请指南

唯品会平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范&#xff0c;唯品会API接口是指通过编程的方式&#xff0c;让开发者能够通过HTTP协议直接访问唯品会平台的数据&#xff0c;包括商品信息、店铺信息、物流信息等&#xff0c;从而实现唯…

CPU、MCU、MPU、SOC、SOCPC、概念解释之在嵌入式领域常听到的名词含义

CPU、MCU、MPU、SOC等几个在嵌入式领域学习过程中会涉及到的几个名词。我们来学习一下&#xff0c;资料从网上搜集的&#xff0c;有错的地方可以指出。。。 CPU、MCU、MPU、SOC、SOCPC、 1. CPU2. MPU3.MCUMPU和MCU的区别&#xff1a;4.SOC5. SoPC 1. CPU CPU&#xff0c;即中…

Spring之Spring生态系统的演进

未来展望&#xff1a;Spring生态系统的演进 未来展望&#xff1a;Spring生态系统的演进 摘要引言词汇解释详细介绍新技术趋势与影响开发方向与展望探讨Spring在未来的发展趋势微服务与云原生响应式编程强调开发效率和全栈式开发支持人工智能和大数据保持灵活性和创新性 针对新兴…

docker 内apt-get安装软件都不好使

报各种错误 apt-get install --no-install-recommends libboost-all-dev Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed:autoconf automake autotools-dev cpp-8 gc…

索引设计规范

索引是帮助数据库高效获取数据的数据结构。索引是加速查询的常用技术手段。在设计索引时&#xff0c;要遵循索引设计规范&#xff0c;避免不必要的踩坑。 【推荐】索引存储结构推荐BTREE InnoDB和MyISAM存储引擎表&#xff0c;索引类型必须为BTRER&#xff0c;MEMORY表可以根…

vue2 vue中的常用指令

一、为什么要学习Vue 1.前端必备技能 2.岗位多&#xff0c;绝大互联网公司都在使用Vue 3.提高开发效率 4.高薪必备技能&#xff08;Vue2Vue3&#xff09; 二、什么是Vue 概念&#xff1a;Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套 **构建用户界面 ** 的 渐进式 …

go:正确引入自己编写的包(如何在 Go 中正确引入自己编写的包)

前言 目录如下&#xff1a; 具体教程 1. 工作空间&#xff08;我的是根目录&#xff09;新建 go.work 文件 文件内容如下&#xff1a; go 1.21.0use (./tuchuang./tuchuang/testm ) 2. 添加go.mod文件 1. 包文件夹下 进入testm目录执行 go mod init testModule 2. 引用目…

设计模式——装饰器模式

装饰器模式 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。这种类型的设计模式属于结构型模式&#xff0c;它是作为现有的类的一个包装。 装饰器模式通过将对象包装在装饰器类中&#xff0c;以便动态…

软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用

软考高级系统架构设计师系列论文九十九:论软件开发平台的选择和应用 一、相关知识点二、摘要三、正文四、总结一、相关知识点 软考高级系统架构设计师系列之:面向构件的软件设计,构件平台与典型架构二、摘要 本文从一个行业MIS系统的开发实践,讨论了软件开发平台的选择和应…

java maven项目打jar包发布(精简版)

目录 一、maven打包 二、安装jdk环境 三、安装mysql 四、jar包传输到服务器 一、maven打包 先clean再package target文件夹下面有生成一个jar包 二、安装jdk环境 1、下载jdk cd /usr/local wget https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.…