码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 小程序 | 实现本地生活的首页基础布局


    文章目录

    • 新建项目并梳理项目结构
    • 配置导航栏效果
    • 配置 tabBar 效果
    • 实现轮播图效果
      • 获取轮播图数据
      • 渲染轮播图页面效果
      • 对轮播图进行美化
    • 实现九宫格效果
      • 获取九宫格数据
      • 渲染九宫格布局
      • 美化九宫格布局
    • 实现图片布局
    • 上拉触底案例
      • 定义获取随机颜色的方法
      • 渲染 UI 结构并美化页面效果
      • 上拉触底时获取随机颜色
      • 添加 loading 提示效果
      • 对上拉触底进行节流处理
    • 列表页面
      • 进行导航跳转和传参
      • 动态设置标题
      • 获取并渲染列表的数据
      • 实现上拉加载效果
        • 展示loading效果
        • 上拉触底的时候请求下一页数据
        • 节流阀-当正在发请求的时候 后续请求要被屏蔽
        • 判断是否还有下一页数据
      • 实现下拉刷新功能
      • 使用wxs 处理手机号
    • 开始前 - 常见Q&A

    在这里插入图片描述

    新建项目并梳理项目结构

    1. 创建一个文件夹用来存放该项目
    2. 打开【微信开发者工具】—>【新建项目】

      注意选择不使用云服务

    3. 我们有三个tab页面,所以前往 app.json 进行修改 pages
      在这里插入图片描述

    配置导航栏效果

    在这里插入图片描述
    根据👇这个进行配置
    在这里插入图片描述

    // app.json
      "window":{
       
        "backgroundTextStyle":"light",
        "navigationBarBackgroundColor": "#2b4b6b",
        "navigationBarTitleText": "本地生活",
        "navigationBarTextStyle":"white"
      },
    

    配置 tabBar 效果

    在这里插入图片描述

    1. 将需要到的图片素材放进项目文件夹images中
    • 根据以下 来进行配置
      在这里插入图片描述
      在这里插入图片描述

    tabBar 和 window 平齐

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

    实现轮播图效果

    获取轮播图数据

    获取轮播图数据列表的接口
    【GET】https://www.escook.cn/slides

    1. 获取轮播图的数据(通过wx.request()来获取)

      在这里插入图片描述

    2. 将获取到的轮播图数据存放到 home.js 里面的 data 中(通过this.setData来修改data中的数据)

    // pages/home/home.js
    Page({
       
    
        data: {
       
            // 存放轮播图数据的列表
            swiperList: [], // 一开始就是个数组形式
        },
    
    	// 生命周期函数--监听页面加载
        onLoad(options) {
       
            // 页面一加载就开始调用 获取轮播图数据的方法
            this.getSwiperList();
        },
        
        // 获取轮播图数据的方法
        getSwiperList() {
       
            wx.request({
       
                url: 'https://www.escook.cn/slides',
                method: "GET",
                success: (res) => {
       
                    // 修改 data 中的数据,将轮播图的数据进行修改
                    this.setData({
       
                        swiperList: res.data,
                    })
                }
            })
        },
    }
    

    渲染轮播图页面效果

    每一个轮播图是对 swiperList 进行for循环拿到的,item 包括id和image,我们的轮播图里面就是 item.image

    
    
    <swiper indicator-dots circular interval="3000" autoplay>
        <swiper-item wx:for="{
        {swiperList}}" wx:key="id">
            <image src="{
        {item.image}}">image>
        swiper-item>
    swiper>
    

    在这里插入图片描述
    在这里插入图片描述

    对轮播图进行美化

    /* pages/home/home.wxss */
    swiper{
       
        height: 350rpx;
    }
    swiper image{
       
        width: 100%;
        height: 100%;
    }
    

    实现九宫格效果

    获取九宫格数据

    获取九宫格数据列表的接口
    【GET】https://www.escook.cn/categories
    在这里插入图片描述

    // pages/home/home.js
    Page({
       
    
        data: {
       
            // 存放轮播图数据的列表
            swiperList: [], // 一开始就是个数组形式
            // 获取九宫格数据的列表
            gridList:[], 
        },
    
        onLoad(options) {
       
            // 页面一加载就开始调用 获取轮播图数据的方法
            this.getSwiperList();
            this.getGridList();
        },
    ...
        // 获取九宫格数据的方法
        getGridList(){
       
            wx.request({
       
              url: 'https://www.escook.cn/categories',
              method:'GET',
              success:(res)=>{
       
                // 对九宫格数据进行赋值
  • 相关阅读:
    进程间通信学习笔记(有名管道和无名管道)
    Linux基础知识,这里有很多内容可以看看~
    保序回归:拯救你的校准曲线(APP)
    11.15 - 每日一题 - 408
    Hi,我是ChunJun,一个有趣好用的开源项目
    盘点几种常用加密算法
    GBA破解老笔记-SD高达G世纪Advance
    关于开源和闭源
    在线图片生成工具:定制化占位图片的利器
    实现定时任务的六种策略
  • 原文地址:https://blog.csdn.net/muziqwyk/article/details/127122036
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号