【小程序从0到1】首页布局案例的实现

news2025/7/9 18:23:22

欢迎来到我的博客
📔博主是一名大学在读本科生,主要学习方向是前端。
🍭目前已经更新了【Vue】、【React–从基础到实战】、【TypeScript】等等系列专栏
🛠目前正在学习的是🔥 R e a c t / 小程序 React/小程序 React/小程序🔥,中间穿插了一些基础知识的回顾
🌈博客主页👉codeMak1r.小新的博客

😇本文目录😇

  • 首页效果以及实现步骤
  • 新建项目并梳理项目结构
  • 配置tabBar效果
  • 实现轮播图效果
  • 实现九宫格效果
  • 实现图片布局

本文被专栏【小程序|原力计划】收录

🕹坚持创作✏️,一起学习📖,码出未来👨🏻‍💻!
在这里插入图片描述

上篇文章详细讲解了微信小程序的网络数据请求,这篇文章将带领大家学习的是小程序的「首页布局案例」

首页效果以及实现步骤

  • 新建项目并梳理项目结构
  • 配置导航栏效果
  • 配置tabBar效果
  • 实现轮播图效果
  • 实现九宫格效果
  • 实现图片布局

新建项目并梳理项目结构

在这里插入图片描述

  • 新建项目并梳理项目结构

app.json

{
  "pages": [
    "pages/home/home",
    "pages/message/message",
    "pages/contact/contact"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#2b4b6b",
    "navigationBarTitleText": "本地生活",
    "navigationBarTextStyle": "white"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

在这里插入图片描述

  • 配置导航栏效果

配置tabBar效果

app.json中与pages、window平级的地方新增tabBar节点,节点内容如下:

app.json / tabBar

 "tabBar": {
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页",
        "iconPath": "/images/tabs/home.png",
        "selectedIconPath": "/images/tabs/home-active.png"
      },
      {
        "pagePath": "pages/message/message",
        "text": "消息",
        "iconPath": "/images/tabs/message.png",
        "selectedIconPath": "/images/tabs/message-active.png"
      },
      {
        "pagePath": "pages/contact/contact",
        "text": "联系我们",
        "iconPath": "/images/tabs/contact.png",
        "selectedIconPath": "/images/tabs/contact-active.png"
      }
    ]
  },

效果如下:

在这里插入图片描述

  • 配置tabBar效果

实现轮播图效果

接口地址

获取轮播图数据列表的接口

  • 【GET】https://www.escook.cn/slides

home.js

// pages/home/home.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 存放轮播图数据的列表
    swiperList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getSwiperList()
  },

  // 获取轮播图数据
  getSwiperList() {
    wx.request({
      url: 'https://www.escook.cn/slides',
      method: 'GET',
      success: res => {
         this.setData({
          swiperList: res.data
        })
      }
    })
  }
})

在这里插入图片描述

home.wxml

<!--pages/home/home.wxml-->
<!-- 轮播图区域 -->
<swiper indicator-dots circular>
	<swiper-item wx:for="{{swiperList}}" wx:key="id">
		<image src="{{item.image}}"></image>
	</swiper-item>
</swiper>

home.wxss

/* pages/home/home.wxss */
swiper {
	height: 350rpx;
}

swiper image {
	width: 100%;
	height: 100%;
}

在这里插入图片描述

  • 实现轮播图效果

实现九宫格效果

接口地址

获取九宫格数据列表的接口

  • 【GET】https://www.escook.cn/categories

home.js

  // 获取九宫格数据
  getGridList() {
    wx.request({
      url: 'https://www.escook.cn/categories',
      method: 'GET',
      success: res => {
        this.setData({
          gridList: res.data
        })
      }
    })
  }

home.wxml

<!-- 九宫格区域 -->
<view class="grid-list">
	<view class="grid-item" wx:for="{{gridList}}" wx:key="id">
		<image src="{{item.icon}}"></image>
		<text>{{item.name}}</text>
	</view>
</view>

home.wxss

/* pages/home/home.wxss */
swiper {
	height: 350rpx;
}

swiper image {
	width: 100%;
	height: 100%;
}

.grid-list {
	display: flex;
	flex-wrap: wrap;
	border-top: 1rpx solid #efefef;
	border-left: 1rpx solid #efefef;
}

.grid-list .grid-item {
	width: 33.33%;
	height: 200rpx;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-bottom: 1rpx solid #efefef;
	border-right: 1rpx solid #efefef;
	box-sizing: border-box;
}

.grid-item image {
	width: 60rpx;
	height: 60rpx;
}

.grid-item text {
	margin-top: 10rpx;
	font-size: 24rpx;
}
  • 实现九宫格效果

在这里插入图片描述

实现图片布局

home.wxml

<!-- 图片区域 -->
<view class="img-box">
	<image src="/images/link-01.png" mode="widthFix"></image>
	<image src="/images/link-02.png" mode="widthFix"></image>
</view>

home.wxss

.img-box {
	display: flex;
	padding: 20rpx 5rpx;
	justify-content: space-around;
}

.img-box image {
	width: 45%;
}

在这里插入图片描述

  • 实现图片布局

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

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

相关文章

let、const和var的区别(涉及块级作用域)

let 、const和var的区别 let、const、var在js中都是用于声明变量的&#xff0c;在没有进行ES6的学习前&#xff0c;我基本只会使用到var关键字进行变量的声明&#xff0c;但在了解了ES6之后就涉及到了块级作用域以及let&#xff0c;const了。 let与const let是用于替代var来…

Java实现本地缓存、分布式缓存及多级缓存

以下均为自己参考其它博主文章或自己理解整理而成&#xff0c;如有错误之处&#xff0c;欢迎在评论区批评指正&#xff01; 0. 缓存简介 像MySql等传统的关系型数据库已经不能适用于所有的业务场景&#xff0c;比如电商系统的秒杀场景&#xff0c;APP首页的访问流量高峰场景&a…

火爆全网的人工智能真的有那么强嘛?

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

Element-UI中的表单验证

Element是一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。   Element为vue-cli 准备了相应的 Element 插件&#xff0c;开发者可以用它们快速地搭建一个基于 Element 的项目&#xff0c;不仅能够快速体验交互细节&#xff0c;还可以使用前端框架封装的代…

Spring AOP 切面增强

背景背景&#xff1a;我们在开发过程中&#xff0c;经常需要做些周边功能&#xff1a; 性能统计、日志、事物管理。我们需要考虑如何解耦这些周边功能开发和核心业务开发区分开达到提升代码质量目的。定义在AOP思想里面定义周边功能定义是&#xff08;性能统计、日志、事务管理…

两种方案解决ERROR in Conflict: Multiple assets emit different content to the same filename index.html 的问题

Ⅰ、所遇问题简述&#xff1a; 1、问题描述&#xff1a; 在用 vue-cli 正常来创建新的基于 vue2 框架 的项目&#xff0c;在安装好 node-modules 之后&#xff0c;运行命令 ‘npm run serve’ ,报错情况如下&#xff1a; ERROR in Conflict: Multiple assets emit different…

用Pytorch构建第一个神经网络模型(附案例实战)

本文参加新星计划人工智能(Pytorch)赛道&#xff1a;https://bbs.csdn.net/topics/613989052 目录 一、Pytorch简介 二、实验过程 2.1数据集介绍 2.2加载数据 2.3数据预处理 2.3.1特征转换 2.3.2缺失值处理 2.3.3样本不平衡处理 2.4特征工程 2.4.1划分训练集和测试集 …

Unity 插件篇 ✨ | 受击插件Feel 详细教程,开发游戏时更好的操控 游戏打击感

&#x1f3ac; 博客主页&#xff1a;https://xiaoy.blog.csdn.net &#x1f3a5; 本文由 呆呆敲代码的小Y 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f384; 学习专栏推荐&#xff1a;Unity系统学习专栏 &#x1f332; 游戏制作专栏推荐&#xff1a;游戏制作 &…

同态加密详解

什么是同态加密 同态加密&#xff08;Homomorphic Encryption&#xff09;是指将原始数据经过同态加密后&#xff0c;对得到的密文进行特定的运算&#xff0c;然后将计算结果再进行同态解密后得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果。 同态加密与一般加…

与C知道的第一次亲密接触

chatG.P.T没向大陆地区开放服务&#xff0c;如要注册除了要邮箱&#xff0c;还要一个已开放服务国家的电话号来接受验证&#xff0c;于是果断放弃注册。还好&#xff0c;CSDN官网提供过网页版的类似聊天机器人&#xff0c;现只在CSDN APP上才有入口。而且现在改名为“C知道”&a…

MQ-2烟雾传感器的使用

一、MQ-2烟雾传感器简介 MQ-2烟雾传感器采用在清洁空气中电导率较低的二氧化锡(SnO2)&#xff0c;属于表面离子式N型半导体。当MQ-2烟雾传感器在200到300摄氏度环境时&#xff0c;二氧化锡吸附空气中的氧&#xff0c;形成氧的负离子吸附&#xff0c;使半导体中的电子密度减少&a…

学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本

使用了6年的实时操作系统&#xff0c;是时候梳理一下它的知识点了 摘要&#xff1a; 本文简单介绍了博主学习操作系统的心路历程&#xff0c;同时还给大家总结了一下当下流行的几种实时操作系统&#xff0c;以及在工程中OSAL应该如何设计。希望对大家有所启发和帮助。 文章目录…

技术瓶颈?如何解决MongoDB超大块数据问题?

目录一、MongoDB服务器管理1、添加服务器2、修改分片中的服务器3、删除分片二、均衡器三、修改块的大小四、超大块1、分发超大块2、分发超大块步骤&#xff1a;3、避免出现超大块4、输出内容详解&#xff1a;五、系统分析器六、一些常见的辅助命令大家好&#xff0c;我是哪吒&a…

阿里巴巴高并发架构,到底如何对抗双十一亿级并发流量

前言 我们知道&#xff0c;高并发代表着大流量&#xff0c;高并发系统设计的魅力就在于我们能够凭借自己的聪明才智设计巧妙的方案&#xff0c;从而抵抗巨大流量的冲击&#xff0c;带给用户更好的使用体验。这些方案好似能操纵流量&#xff0c;让流量更加平稳得被系统中的服务…

【Linux】网络编程套接字(中)

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…

【Linux】第一座高山——进程地址空间

大家好我是沐曦希&#x1f495; 文章目录一、什么是进程地址空间二、进程地址空间的管理1.区域划分和调整三、为什么存在进程地址空间四、写在最后一、什么是进程地址空间 我们在学习C/C的动态内存空间&#xff0c;习惯把地址空间划分为几个区域: 但是这并不是真的的地址空间…

2023年网络安全趋势

数据安全越来越重要。 我国《数据安全法》提出“建立健全数据安全治理体系”&#xff0c;各地区部门均在探索和简历数据分类分级、重要数据识别与重点保护制度。 数据安全治理不仅是一系列技术应用或产品&#xff0c;更是包括组织构建、规范制定、技术支撑等要素共同完成数据…

node - 下载安装指定版本

文章目录前言一、什么是Node?二、安装1.打开 Node官网2.点击DOWNLOADS3.点击 All download options4.修改地址栏中对应的版本号修改版本号后选择需要的文件下载即可 ![在这里插入图片描述](https://img-blog.csdnimg.cn/049c33e7ebad4114937f23447c5d8c71.png)前言 node 下载…

python实现——处理Excel表格(超详细)

目录xls和xlsx基本操作1&#xff1a;用openpyxl模块打开Excel文档&#xff0c;查看所有sheet表2.1&#xff1a;通过sheet名称获取表格2.2&#xff1a;获取活动表3.1&#xff1a;获取表格的尺寸4.1&#xff1a;获取单元格中的数据4.2&#xff1a;获取单元格的行、列、坐标5&…

Linux- 系统随你玩之--玩出花活的命令浏览器上

文章目录1、背景2、命令浏览器2.1、命令浏览器介绍2.2、特点2.3 常用功能选项3、实操3.1、使用 wget 下载文件3.2、 断点续传3.3、镜像整个站点4、 总结1、背景 一位友人说他有台服务器&#xff0c;需要下载一个文件&#xff0c;但是没有视窗界面与下载工具&#xff0c;怎么办…