【详细】豆瓣小程序--从0到1实现首页布局

news/2024/7/20 2:07:06 标签: 小程序

首页是app,小程序中非常常见的一个需求,作为常见的需求,如何高效地完成该需求的实现,就异常关键。那么我们如何从0到1实现自己的首页,请看本文。

实际效果

实现了瀑布流的布局,同时,涉及了豆瓣的相应api的网络请求,进而获取对应item的数据

 

WXML布局

由于大多数布局相对一致,因此我采用了组件化的设计,减少代码的冗余,下面是首页的xml布局

<!--index.wxml-->
<searchbar isnavigator="{{true}}"></searchbar>

<!-- 滑动布局 -->
<indexmodule title = "影院热映" items="{{movies}}"></indexmodule>

<indexmodule title = "近期热门剧情" items="{{tvhot}}"></indexmodule>

<indexmodule title = "近期热门综艺" items="{{shows}}"></indexmodule>

<indexmodule title = "畅销图书" items="{{books}}"></indexmodule>

<indexmodule title = "热门单曲榜" items="{{music}}"></indexmodule>

 

Json

组件化,那么我们需要在json中添加,对于组件的依赖

{
  "usingComponents": {
    "searchbar":"/components/searchbar/searchbar",
    "star":"/components/star/star",
    "indexmodule":"/components/indexmodule/indexmodule"
  }
}

indexmodule是首页瀑布流组件,star是评分打星的组件,searchbar是搜索框的组件

具体实现请参照,这里不多详细描述了

https://blog.csdn.net/m0_37218227/article/details/106984839

https://blog.csdn.net/m0_37218227/article/details/107023453

 

网络请求

Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var that = this;
    /**
     * 网络请求
     */
    // 电影
    wx.request({
      url: 'https://m.douban.com/rexxar/api/v2/subject_collection/movie_showing/items?count=7',
      // data:{
      //   count:7
      // }
      success: function(res) {
        var movies = res.data.subject_collection_items;
        that.setData({
          movies: movies
        });
      }
    });

    //电视剧
    wx.request({
      url: 'https://m.douban.com/rexxar/api/v2/subject_collection/tv_hot/items?count=7',
      success: function(res) {
        var tvhot = res.data.subject_collection_items;
        that.setData({
          tvhot: tvhot
        });
      }
    });

    //综艺
    wx.request({
      url: 'https://m.douban.com/rexxar/api/v2/subject_collection/tv_variety_show/items?count=7',
      success: function(res) {
        var shows = res.data.subject_collection_items;
        that.setData({
          shows: shows
        });
      }
    });

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})

跟进wx.request对网络进行请求,获取对应模块的数据,那么这个页面就基本上做好了

最后看一下,瀑布流的组件wxss文件,可以看到具体瀑布流控件的布局样式

.module-group{
  padding: 40rpx;
  background-color: #fff;
}

.module-group .module-top{
  font-size: 36rpx;
  display: flex;
  justify-content: space-between;
}

.module-top .module-title{
  font-weight: bold;
  color: #494949;
}

.module-top .module-more{
  font-size: 28rpx;
  color: #41be57;
}

.module-scroll-view{
  margin-top: 40rpx;
  width: 100%;
  height: 400rpx;
  white-space: nowrap;
}

.item-navigator{
  width: 200rpx;
  margin-right: 20rpx;
  display: inline-block;
}

.item-navigator .item-group{
  width: 100%;
}

.item-group .thumbnail-group{
  width: 100%;
  height: 284rpx;
}

.thumbnail-group .thumbnail{
  width: 100%;
  height: 100%;
}

.item-group .item-title{
  font-size: 28rpx;
  text-align: center;
  margin-top: 20rpx;
  text-overflow: ellipsis;
  overflow: hidden;
  margin-bottom: 20rpx;
}

希望喜欢的朋友,可以点赞收藏,支持一下,共同进步

 

 

 

 

 

 


http://www.niftyadmin.cn/n/855467.html

相关文章

linux使用shell脚本处理db2数据库

echo "start $(date %Y-%m-%d-%X)" time$(date -d 100 days %Y-%m-%d) echo "start $time" su - db2inst1 <<EOF time db2 connect to cmbcepay user epay using epay echo "连接数据成功" echo "开始导出日期为$time的bt_clear_tran…

【详细】豆瓣小程序--详情列表页实现

详情页是app&#xff0c;小程序中非常常见的一个需求&#xff0c;作为常见的需求&#xff0c;如何高效地完成该需求的实现&#xff0c;就异常关键。这种页面往往比较复杂&#xff0c;涉及多种布局&#xff0c;那么小程序中如何从0到1实现滑动布局呢&#xff1f;请看本文 效果展…

【详细】小程序搜索功能实现

搜索功能是app&#xff0c;小程序中非常常见的一个需求&#xff0c;作为常见的需求&#xff0c;如何高效地完成该需求的实现&#xff0c;就异常关键。那么小程序中如何从0到1实现搜索功能呢&#xff1f;请看本文 效果展示 历史记录 跳转到详情页面&#xff08;详情页面开发链接…

【详细】VSCode插件离线安装方法

简介 VSCode是一款非常常用的编辑器软件&#xff0c;在VSCode社区中有很多巧妙的插件&#xff0c;但有时候&#xff0c;我们开发环境不能上网&#xff0c;为了方便办公&#xff0c;又不得不需要这类插件的安装&#xff0c;这就涉及到了相关插件的离线安装的问题。 显然&#…

TCP/IP、 IXP/SPX、 NetBEUI、 AppleTalk协议

TCP/IP、 IXP/SPX、 NetBEUI、 AppleTalk的认识: TCP/IP协议&#xff0c;或称为TCP/IP协议栈&#xff0c;或互联网协议系列。 它包含了一系列构成互联网基础的网络协议。这些协议最早发源于美国国防部的DARPA互联网项目。TCP/IP字面上代表了两个协议: TCP传输控制协议和IP互联网…

【超详细】数据库事务隔离探究

前言 提到事务&#xff0c;你肯定不陌生&#xff0c;和数据库打交道的时候&#xff0c;我们总是会用到事务。最经典的例子就是转账&#xff0c;你要给朋友小王转100块钱&#xff0c;而此时你的银行卡只有100块钱。 转账过程具体到程序里会有一系列的操作&#xff0c;比如查询…

震后首次漫步锦里有感

震后首次漫步锦里有感 ——代腾飞 2008年6月27日 于成都 饭后漫步锦里边 锦城宫外回震前 昔日佳景依旧在 只是多了几分闲

【详细】IntelliJ IDEA: 无法创建Java Class文件

有时候IDEA新建一个项目&#xff0c;可能导致编辑器不能直接创建java文件&#xff0c;见下图&#xff0c;于是我尝试了以下方法&#xff1a; &#xff08;1&#xff09;选择 File——>Project Structure——>Project Settings——>Modules 如图新项目&#xff0c;new…