我去!又是勇士和骑士?--NBA资讯小程序

image

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

NBA资讯小程序出来啦


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

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

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


效果图

image
image
image

image

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

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

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 index
    const 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.文章页返回

image

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

image
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; //页数+1
   wx.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进行选择渲染

image

image
<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;//获取文章id
   if (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等进行封装,模块组件化,写了很多重复的代码。不过这都不是事,谁不是先爬再跑的!
想了解更多可以查看我的项目
欢迎大家提供宝贵的建议和意见,社区重在分享,有啥好东西就别藏着啦

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,110评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,443评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,474评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,881评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,902评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,698评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,418评论 3 419
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,332评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,796评论 1 316
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,968评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,110评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,792评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,455评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,003评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,130评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,348评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,047评论 2 355

推荐阅读更多精彩内容