微信小程序-仿知乎主题日报列表

2024-08-23 22:18

本文主要是介绍微信小程序-仿知乎主题日报列表,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个篇文章继续带大家一起练习微信小程序的布局。

下面将会按照以下的顺序介绍:

  1. 网络请求的实现

  2. 工具类的实现

  3. 布局的实现

  4. 逻辑的实现

  5. 样式的实现

1.网络请求的实现

在js文件中通过Page()函数注册一个界面,然后在data定义一个theme对象,这个对象用来接收网络请求的结果,接着在onLoad()函数中调用wx.request进行网络请求,请求成功的数据,赋值给data中的theme对象。

var URL_THEME='http://news-at.zhihu.com/api/4/theme/11';Page({data:{theme:{}},/*** 加载网络上的数据*/onLoad: function () {console.log('--onLoad--');var that=this;wx.request({url: URL_THEME,method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECTsuccess: function(res){that.setData({'theme': res.data})},fail: function() {},complete: function() {}})},})

2.工具类的实现

修改utils文件中的util.js工具类,这个工具类是获取日期的工具类

function formatTime(date) {var year = date.getFullYear()var month = date.getMonth() + 1var day = date.getDate()return [year, month, day].map(formatNumber).join('/')}function formatNumber(n) {n = n.toString()return n[1] ? n : '0' + n}module.exports = {formatTime: formatTime}

工具类在Page()函数中使用,先通过require将工具类引入,然后在onLoad()函数中调用工具类中的formatTime方法获取系统时间,并把时间赋值给data中的time变量。

var util = require('../../utils/util.js')...Page({data:{theme:{},time:"",},/*** 加载网络上的数据*/onLoad: function () {this.setData({'time': util.formatTime(new Date())})console.log('--onLoad--');var that=this;wx.request({............})},})

3.布局的实现

整个布局分类三部分:轮播图,今日热点,重复的item.

<!--轮播图--><swiper indicator-dots="true" autoplay="true" interval="4000" duration="2000"><block wx:for="{{theme.editors}}" wx:for-index="index"><swiper-item class="swiper-items"  ><image class="swiper-image" src="{{theme.image}}"></image></swiper-item></block></swiper><!--今日热点--><View class="view-tile" ><text class="view-tile-text">今日热点</text></View><!--每一个item--><block wx:for="{{theme.stories}}" wx:for-index="index"><View class="view-item "><block wx:for="{{item.images}}" wx:for-item="imgUrl" wx:for-index="index"><image wx:if="{{imgUrl!=null}}" class="imgClass" src="{{imgUrl}}" binderror="imageError"></image></block><View class="view-item-text "><text class="item-text-title">{{item.title}}</text><View class="view-item-text-time "><text class="item-text-time">{{time}}</text></View></View></View><View class="view-line" > </View></block>

4.逻辑的实现

1.引入了util.js工具,获取系统的时间,并把值赋值给time变量

2.实现网络强求,获取json字符,并把json字符窜的值赋值给theme这个对象

3.imageError监听图片的加载情况

var util = require('../../utils/util.js')var URL_THEME='http://news-at.zhihu.com/api/4/theme/11';Page({data:{theme:{},time:""},/*** 加载网络上的数据*/onLoad: function () {this.setData({'time': util.formatTime(new Date())})console.log('--onLoad--');var that=this;wx.request({url: URL_THEME,method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECTsuccess: function(res){that.setData({'theme': res.data})},fail: function() {},complete: function() {}})},/*** 监听图片加载*/imageError:function(e){console.log('image3发生error事件,携带值为', e.detail.errMsg)}})

5.样式的实现

/*今日热点的view的样式*/.view-tile{display: block;width: 100%;height: 25px;padding-top: 5px;background-color: ghostwhite;}/*每一个item的view的样式*/.view-item{display: flex;justify-content: center;align-items: center;flex-direction: row;}/*每一个item中文本的view的样式*/.view-item-text{display: flex;justify-content:center;align-items: flex-start;flex-direction: column;flex: 1;}/*每一个item中时间的view的样式*/.view-item-text-time{display: flex;justify-content:flex-end;align-items: flex-end;width: 100%;}/*分界线view的样式*/.view-line{width: 100%;height: 10px;background-color: gainsboro;}/*图片的样式*/.imgClass{width: 70px;height:70px;margin-bottom: 15px;margin-left: 15px;margin-top: 15px;border-radius: 50%;}/*今日热点的文字样式*/.view-tile-text{margin: 5px;}/*每一个item中文字的样式*/.item-text-title{/*规定文字显示两行,超过两行的使用省略号*/display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;word-break: break-all;overflow: hidden;font-size: 18px;margin-bottom: 15px;margin-top: 15px;margin-left: 15px;margin-right: 5px;}/*每一个item中时间的样式*/.item-text-time{color: gray;margin-right: 5px;margin-bottom: 5px;}

5.效果图

图片空白处是图片加载失败,这个原因暂时还没有解决。

这篇关于微信小程序-仿知乎主题日报列表的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1100647

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

c++的初始化列表与const成员

初始化列表与const成员 const成员 使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。 不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。 在定义const成员时进行初始化,该语法只有在C11语法标准下才支持。 初始化列表 在构造函数小括号后面,主要用于给

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

Spring+MyBatis+jeasyui 功能树列表

java代码@EnablePaging@RequestMapping(value = "/queryFunctionList.html")@ResponseBodypublic Map<String, Object> queryFunctionList() {String parentId = "";List<FunctionDisplay> tables = query(parent

这些心智程序你安装了吗?

原文题目:《为什么聪明人也会做蠢事(四)》 心智程序 大脑有两个特征导致人类不够理性,一个是处理信息方面的缺陷,一个是心智程序出了问题。前者可以称为“认知吝啬鬼”,前几篇文章已经讨论了。本期主要讲心智程序这个方面。 心智程序这一概念由哈佛大学认知科学家大卫•帕金斯提出,指个体可以从记忆中提取出的规则、知识、程序和策略,以辅助我们决策判断和解决问题。如果把人脑比喻成计算机,那心智程序就是人脑的

uniapp设置微信小程序的交互反馈

链接:uni.showToast(OBJECT) | uni-app官网 (dcloud.net.cn) 设置操作成功的弹窗: title是我们弹窗提示的文字 showToast是我们在加载的时候进入就会弹出的提示。 2.设置失败的提示窗口和标签 icon:'error'是设置我们失败的logo 设置的文字上限是7个文字,如果需要设置的提示文字过长就需要设置icon并给

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于