话不多说,先来一张我科的图坐镇

NBA资讯小程序出来啦


作为一个刚接触小程序不久的前端小白菜,恰逢最近NBA如火如荼的双抢七大战、骑士与勇士又又又又又一次的巅峰对决(实话:真的看腻了- -),决定写一个NBA资讯的小程序来玩玩。下面讲讲小程序的开发

  • 开发工具:vscode 微信开发者工具
  • 开发技术:(Wxml)Html (Wxss)css javascript
  • 开发流程:注册一个appid就可以马上进行开发了简易教程

这里还要提一下两个网站Easy Mock、Iconfont
前者是可以快速生成模拟数据的持久化服务这里展示下我的数据接口 后者是可以找到许多你想要的小图标库


效果图

身为新手写的过程中不碰到些问题那怎么可能呢- -

下面就来讲讲我碰到的那些问题吧~

1.首页日期比赛数据切换(就是那个能点能横滑的部分)

当时看到这觉得无非就是左右button点击事件进行切换数据 然后再跟滑动date绑定一起 想到就开始写 左右点击一下就写完了

changeleft:function() {const index = this.data.index - this.data.num;//获取改变后的那组数据下标this.setData({agenda: this.data.result[index],// 将球队名 球队分数传入light: this.data.result[index].leftgrade > this.data.result[index].rightgrade ? '1' : '2', //比较分数大小 将分数高的color改变index: index,current:index,showLeft: true,//改变图标为浅色图标})}
复制代码

注意一个细节,当左右没有更多数据切换时 图标颜色会改变 变浅色 示意不能点了 所以要进行if判断左右两边是否为临界值 也就是数组的第一项和最后一项。

 turnleft: function (e) {const index = this.data.index -this.data.num;if (index <= -1) {return;} else if (index == 0) {this.changeleft();} else {this.changeleft();this.setData({showLeft: false,showRight: false,})}},
复制代码

这里展示左边的方法 右边类似。于是开始着手写滑动那部分,这里就吃了没有经验的大亏了,想到滑动立马想到了scroll-view 噼里啪啦写了一堆,可一点击我傻了 这日期是瞬间变化 没有滑动的那个效果啊,难道是这个不行? 于是我又使用scroll-left 算距离 每一项设置好padding 写了许久也算是完成了 一试还是没有滑动效果...(一口老血吐出来)

最后还是用swiper搞定了这效果

 swiperchange:function(e) {const current = e.detail.current;//取当前swiper indexconst ind = this.data.index;//之前数组的index const dex = current - ind;//判断左滑右滑if(current-ind >0){this.setData({num:dex //滑动多少项})this.turnright() //左滑事件this.setData({num:1   //必须回1 因为点击事件每次改变的数组项为1})}else if(current - ind <0){this.setData({num:-dex })this.turnleft()this.setData({num:1})}
复制代码

2.文章页返回

这里可以设置navigator 或者直接bindtap 但是要注意返回为tabBar的话 open-type 和跳转方法为switchTab

back: function (e) {wx.switchTab({url: "../../pages/index/index"});}
复制代码

3.scroll-view滑动问题

很多人可能会碰到swiper不能滑动等问题要注意以下几点

  • scroll-view 中的需要滑动的元素不可以用 float 浮动;

  • scroll-view 中的包裹需要滑动的元素的大盒子用 display:flex; 是没有作用的;

  • scroll-view 中的需要滑动的元素要用 dislay:inline-block; 进行元素的横向编排;

  • 包裹 scroll-view 的大盒子有明确的宽和加上样式--> overflow:hidden; white-space:nowrap;


4.上拉加载下拉刷新问题

  • 下拉刷新需要在当前页的json或者app.json设置 "enablePullDownRefresh": true,
  • 下拉事件一定要加wx.hideLoading() 不然刷新小点一直出现
onPullDownRefresh() {// console.log('下拉了');wx.showLoading({title: '玩命加载中',})wx.request({url: API_BASE,success: (res) => {this.setData({news: res.data.data.new,currentPage: 1,hide:false})wx.hideLoading();//!!!一定要加wx.stopPullDownRefresh()}})},
复制代码
  • 上拉加载可以使用 onPullDownRefresh() 或者bindscrolltolower() 前者是页面触底 后者是scroll滚动条到底部,二者视情况使用。
 onReachBottom() {let { currentPage, totalPages } = this.data  //解构当前页和共几页 es6语法if (currentPage >= totalPages) {this.setData({hide:true,})return;}wx.showLoading({title: '玩命加载中',})currentPage += 1; //页数+1wx.request({url: API_BASE,success: (res) => {const news = [ //将请求的数据和原本的数据一起放入...this.data.news,//扩展运算符( spread )是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列 es6语法...res.data.data.new,];this.setData({news,currentPage})wx.hideLoading();}})},
复制代码

5.wx:if选择渲染问题

在我的项目中 有很多需要单独添加样式 或者事件操作 可以使用wx:if 配合block进行选择渲染

<block wx:if="{{video.title == item.title}}"><view class="btn" style="display: none;"></view><text class="content-title " style="white-space: normal;color: #42F32F;">{{item.title}}</text> </block><block wx:else><view class="btn" ></view><text class="content-title" style="white-space: normal;">{{item.title}}</text> </block>
复制代码

6.navigator跳转问题

   var that = this;var id = that.data.new.id;//获取文章idif (id === 'n8') {//判断是否为最后一篇wx.showModal({title: '提示',content: '没有更多内容了',showCancel: false,success: function (res) {} })return; //为最后一篇则无需请求数据}wx.request({url: API_BASE,success: (res) => {for (let i = 0; i < res.data.data.new.length; i++) {if (id === res.data.data.new[i].contentId) { //判断是否请求到对应数据// console.log("找到了");this.setData({news: res.data.data.new[i + 1],//将请求到数据的数据传入})var it = this;wx.navigateTo({url: 'news?id=' + this.data.news.contentId + '&title=' + this.data.news.title + '&from=' + this.data.news.from + '&image=' + this.data.news.image + '&content=' + this.data.news.content + ''})}}}})},
复制代码

写在最后

在写项目中还有碰到许多问题,video黑边 scroll-view文字换行等问题,大家百度或者查看官方文档大都能解决。
由于是初学小程序不久,很多方面没有考虑好 没有对request等进行封装,模块组件化,写了很多重复的代码。不过这都不是事,谁不是先爬再跑的!
想了解更多可以查看我的项目 欢迎大家提供宝贵的建议和意见,社区重在分享,有啥好东西就别藏着啦

转载于:https://juejin.im/post/5b1e3c3f518825137478a20e

duang~NBA资讯小程序相关推荐

  1. 新闻资讯小程序开发实践

    新闻资讯小程序开发实践 在腾讯小程序上线一周年之际,公司又决定把App产品部分内容在小程序上实现.就在小程序刚上线的时候,公司也有一款产品进行了小程序的研发,但后续没有持续的维护.这过了一年的时间,微 ...

  2. 小帅一点资讯小程序源码

    小帅一点资讯小程序源码 https://gitee.com/xshuai/weixinxiaochengxu 完全开源微信小程序前端代码. 后台代码开源第一版已经更新在码云:https://gitee ...

  3. WordPress资讯小程序源码分享

    1.小程序简介 追格资讯小程序开源版(酱茄free),一款基于WordPress开发的多端小程序,简单的配置就能搭建自己的博客小程序. 2.小程序下载 小程序分为两部分,一部分为前端uniapp部分, ...

  4. 新闻资讯小程序app

    1.系统情况 该新闻资讯小程序 主要是用户可以查看各种各样的新闻资讯,并且可以进行注册,登录账号,搜索,评论,点赞,收藏,浏览新闻等操作,该小程序分为前台和后台管理系统.东西很多,非常值得学习,二次开 ...

  5. 微信小程序之-NBA赛程小程序开发

    项目源码地址: wx-nba-project 项目中参考了wx-nba的部分样式及图片,接口数据都是来源于  腾讯网 使用wxParse来解析富文本,具体使用方法可以参考微信小程序解析富文本的几种方法 ...

  6. Wordpress社区小程序丸子小程序,Wordpress知识付费小程序Wordpress电商小程序Wordpress资讯小程序Wordpress开源小程序Wordpress小程序人人都可以做的小程序

    关于WordPress 说到Wordpress一款开源的全球CMS博客系统,作为一款成熟的系统,只需要完美的对接前端自己写对应的API接口就可以完美的呈现出一个自己想要的客户端例如PC版,移动版以及现 ...

  7. 守望先锋资讯小程序模板 游戏小程序模板 (免费分享)

    介绍 行业:游戏 开发软件:微信WEB开发者工具 文件大小:543.80 KB 下载链接 http://www.bytepan.com/xAapnBGD5bZ 图片

  8. 小程序离成功还差一个版本

    PMCAFF(www.pmcaff.com):互联网产品社区,是百度,腾讯,阿里等产品经理的学习交流平台.定期出品深度产品观察,互联产品研究首选. 外包大师(www.waibaodashi.com): ...

  9. 微信小程序最新开发资源汇总,对学习微信小程序的新手有一定帮助

    微信小程序最新开发资源汇总,希望给想学习或正在学习微信小程序开发的同学们带来一定帮助,汇总的小程序资源有点繁杂,各种类型的小程序demo都有,大家可以选择自己想要的demo进行下载学习.这些微信小程序 ...

最新文章

  1. 用Select查询结果创建ACCESS表
  2. 在XML中发送二进制数据
  3. 经常误提交.DS_Store文件怎么办?Git全局排除配置了解一下!
  4. 2016百度之星 - 资格赛(Astar Round1)
  5. 3D数学基础:图形与游戏开发---随笔一
  6. QT的QScriptEngineDebugger类的使用
  7. .bash_profile vs .bashrc
  8. 【HDU - 1220】Cube (组合数学,简单)
  9. PHP导航猫网址导航系统源码V2.4.5
  10. 编辑php程序推荐的软件,PHP程序员都爱用的开发工具推荐
  11. p1198bzoj1012 最大数
  12. rutime 理解
  13. 高效的JavaScript
  14. 给你一份完整的自动阅读所需介绍
  15. MAC配置IOS、Android真机以及appium环境配置,最新版(一)
  16. word怎么根据点画曲线_用word怎么画曲线图 word里如何绘制曲线图
  17. 如何使用 Victoria 检测并修复硬盘坏道和坏扇区
  18. jsencrypt加解密 Vue测试
  19. 天下手游获取服务器信息,天下手游如何冲全服务器第一等级 冲级套路分享
  20. 第十三周 查找(一) 项目一 验证算法(2)

热门文章

  1. 装满了自我提升的33个学习平台
  2. 直播平台源码中的推拉流是什么
  3. linux yum安装svn版本号,CentOS7 yum安装svn服务
  4. openGL增强表面细节--凹凸贴图具体实现
  5. Spring容器是怎么初始化的?
  6. parzen窗估计如何进行结果分析_Parzen窗方法的分析和研讨
  7. Windows 微博图床工具(支持多种图床)下载和picgo VSCode插件版的详细介绍
  8. sqldbx连接db2数据库
  9. 通过SqlDbx导出*.sql,然后倒入到SQLServer2005
  10. YbSoftwareFactory 代码生成插件【十三】:Web API 的安全性