夜光带你走进 微信小程序开发(二十八)擅长的领域

夜光序言:

 

 

若是命运摆在你面前的是残羹冷炙,你也要把它当成华堂盛宴吃下去。

 

 

 

 

 

 

 

 

 

 
 
正文:
 
                                              以道御术 / 以术识道

 

 

 

 

 

实际开发中,我们不可以写的这么死板

需要进一步优化代码

 

 

 

这样写嗯~~

这里要做个判断

这里,需要学会,如果要变换,我们需要先预设一个初始化值

之后运用true or false来

 

我们需要运用这种表达式来进行判断

<!--pages/news/news-detail/news-detail.wxml-->
<view class="news-detail-container">

   <!-- <view>{{authorName}}</view> -->

   <image class="head-img" src="../../images/115.jpg" mode="widthFix"></image>
   <view class="author-time">
      <image class="author-avatar" src="../../images/114.jpg" mode="widthFix"></image>
      <text class="author-name">{{authorName}}</text>
      <text class="const-text">发表于</text>
      <text class="time">{{authorTime}}</text>
      <!-- <image catchtap="playermusic" class="music" src=""></image> -->
      <image bindtap="playerMusicTap" class="playermusic" src="{{isPlayer?'../../images/f.jpg' : '../../images/e.jpg'}}"></image>
   </view>

   <text class="title">I am the bone of my sword. 身为剑体</text>
   <view class="tool">
      <view class="circle-img">
          <image wx:if="{{collected}}" catchtap="collectTap" src="../../images/c.jpg" mode="widthFix"></image>
          <image wx:else="" catchtap="collectTap" src="../../images/d.jpg" mode="widthFix"></image>
          <!-- <image></image> -->
          <image catchtap="onShowTap" class="share-img" src="../../images/b.jpg" mode="widthFix"></image>
      </view>
      <view class="horizon"></view>
   </view>
   <text class="detail">I am the bone of my sword. 身为剑体 Steel is my body, and fire is my blood. 钢铁之血灼璃之心 I have created over a thousand blades. 手创千剑历经百战 Unknown to death,Nor known to life. 无一败绩无一知己 Have withstood pain to create many weapons. 常独自一人自醉与剑丘之巅 Yet, those 乏讥催客诎九挫循旦末hands will never hold anything. 因此此生亦无任何意义 So as I pray, unlimited blade works. 则其身定为无限剑制</text>

</view>

 

 

// pages/news/news-detail/news-detail.js
var newsData = require("../../data/newsdata.js")


Page({

  /**
   * 页面的初始数据
   */
  data: {
      // detailData:[] 这个初始化,我们也先不要
      //音乐播放,切换图标
      isPlayer:false  //这边我们初始化一个值
  },

  /**
   * 生命周期函数--监听页面加载
   * 夜光:这个生命周期函数用的情况比较多
   */
  onLoad: function (options) {
    //  console.log(options.newsid)
    console.log();
    this.setData(
      // 这个不行嗯~ 
      // detailData:newsData.initData[options.newsid]
      newsData.initData[options.newsid]
    )
    this.setData({
      newsid: options.newsid
    })

    //测试本地存储
    // wx.setStorageSync("key", "data") 我先把这句代码注释掉,接下来

    // console.log(wx.getStorageSync("key"));

    //收藏存储数据格式
    //var newsCollect={
    //   0:true
    //   1:flase
    //}

    //第一次进入的时候,判断是否存在本地存储以及是否收藏,这里
       var newsCollect = wx.getStorageSync("newsCollect");
       //之后我们判断
       //如果newsCollect存在,则代表以前收藏过或者取消过收藏
       if (newsCollect){
         var newCollect = newsCollect[options.newsid]
         this.setData({
           collected: newCollect
         })
       }else{
         //第一次进入,根本不存在数据
         var newsCollect = {}; //先定义一个空对象
         //我把当前唯一id放到newsCollect对象中,默认指定false
         newsCollect[options.newsid] = false; //这里,我们需要对对象和数组之间的关系有较为深刻的认识
         //放到本地存储之中去
         wx.setStorageSync("newsCollect", newsCollect)
       }
      
    },
    //下面,我们写一个方法
    collectTap:function(event){
      //我们一般写方法,都会先在控制台随便打印点东西,看看是否有问题
      // console.log("1")
      // console.log(this.data.newsid); //打印看一下 有了效果,我们就可以干活了
      // this.data.newsid
      //既然如此,我们在这个里面就要存储了
      //注意:newsCollect是所有数据的集合
      var newsCollect = wx.getStorageSync("newsCollect"); //这里,我们数据存储的格式就是newsCollect
      //这里需要提醒一下,第一次进来的时候就要判断数据是否存在
      //但是这里并没有写,这里是进来之后的逻辑,这需要注意一下

      //下面我们再定义一个一条的
      // var newCollect = newsCollect
      var newCollect = newsCollect[this.data.newsid];
      // console.log(newCollect)
      //这里是什么逻辑,如果是收藏的则被取消,如果未被收藏则收藏
      newCollect = !newCollect; //反正取反么,true or false

      //更新到本地存储中
      newsCollect[this.data.newsid] = newCollect;
      wx.setStorageSync("newsCollect", newsCollect); //newsCollect把这个集合的整体再放进去
      //后台数据是更新了,那么前端的视图层如何更新呢
      //下面就是渲染到,并更新视图
      this.setData({
        //暂时不知道,因为我们根本不知道视图是怎么改变的
        collected: newsCollect[this.data.newsid]
      })

      wx.showToast({
        title: newsCollect[this.data.newsid]?'收藏成功':"取消收藏",
        // icon: 'loading',这个属性设定,表示的有点东西,就是一直转圈圈的那个特效,仿佛有很多数据在交互似的
        icon: 'success',
        duration: 2000,
        mask:true
      })

    },

  onShowTap:function(event){
    // wx.showModal({
    //   title: '提示',
    //   content: '这是一个模态弹窗',
    //   success(res) {
    //     if (res.confirm) {
    //       console.log('用户点击确定')
    //     } else if (res.cancel) {
    //       console.log('用户点击取消')
    //     }
    //   }
    // })
    wx.showActionSheet({
      itemList: ['分享到微信', '分享到微博', '分享到QQ'],
      success(res) {
        console.log(res.tapIndex)
      },
      fail(res) {
        console.log(res.errMsg)
      }
    })
  },

  onShareAppMessage:function(){
     return{
       title: newsData.initData[this.data.newsid].title,
       path:"/pages/news/news-detail/news-detail"
     }
  },


  //音乐播放的事件
  playerMusicTap:function(event){
    //这里需要注意
    var that = this;
    //播放音乐要判断当前音乐是否在播放
    wx.getBackgroundAudioPlayerState({
      success:function(res){
         var status = res.status
         if(status !=1){
           //没有在播放
           //调用之前写好的播放的逻辑就行了
           wx.playBackgroundAudio({
             dataUrl: newsData.initData[that.data.newsid].music.url,
             title: newsData.initData[that.data.newsid].music.title,
             coverImgUrl: newsData.initData[that.data.newsid].music.coverImg
           })
           that.setData({
             isPlayer:true
           })
         }else{
           wx.pauseBackgroundAudio()
           that.setData({
             isPlayer: false
           })
         }
      }
    })

   
  }
  

})

 

var initData = [
   {
       "newsid":0,
       "authorIcon": "../images/3.png",
       "authorName":"GeniusTeam",
       "authorTime": "2020/3/9",
       "title":"三十年河东三十年河西,莫欺少年穷",
       "articleImg": "../images/30.jpg",
       "articleText":"传说在那世界开辟时,曾有一生灵诞生,号称祖龙,吞天灭地,乃是至高般的存在,祖龙最后身化万物,从此混沌世界中有了诸多生命出现。",
       "articlelikeText":11,
       "music":{
           "url":"写服务器的地址嗯" ,
           "title": "",
           "coverImg":""
       }
   },
  {
    "newsid": 1,
    "authorIcon": "../images/3.png",
    "authorName": "GeniusTeam",
    "authorTime": "2020/3/9",
    "title": "三十年河东三十年河西,莫欺少年穷",
    "articleImg": "../images/28.png",
    "articleText": "传说在那世界开辟时,曾有一生灵诞生,号称祖龙,吞天灭地,乃是至高般的存在,祖龙最后身化万物,从此混沌世界中有了诸多生命出现。",
    "articlelikeText": 11,
    "music": {
      "url": "写服务器的地址嗯",
      "title": "",
      "coverImg": ""
    }
  }
]

module.exports = {
  initData: initData
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值