美文网首页程序员
每日一弹:小程序商城购物车

每日一弹:小程序商城购物车

作者: 醉虾不醉 | 来源:发表于2018-01-08 16:32 被阅读16次

1.索引

1.对象索引是属性名

2.数组索引是下标

3.多重索引,典型的json数据就是

2.全选联动按钮

1.数据渲染复选框的布尔值

3.动态选中样式

1.在网页中的应有场景非常多。有tabbar、自定义复选框等。

2.需要改变的样式有:选中图片、背景色、字体颜色、边框颜色等。

4.promise封装网络请求为模块工具

function getStorage(key){//获取数据缓存

  return new Promise(function (resolve, reject) {

    wx.getStorage({

      key: key,

      success: resolve,

      fail: reject

    });

  });

};

function getNetJson(url, params){//发送数据请求

    return new Promise(function(resolve, reject){

      wx.request({

        url: url,

        data: params,

        header: {

          'content-type': 'json' // 默认值

        },

        success:resolve,

        fail: reject

      });

    });

};

module.exports = {//暴露模块接口

  getStorage,

  getNetJson

};

var app = getApp();//获取顶层实例

app.wxapis.getStorage('board_data').then()//调用模块接口

const wxapis = require('./utils/wxapis.js');//获取模块(app.js)

App({

  wxapis

})

getCache() {//用于判断是否有无缓存

    return new Promise((resolve, reject) => {

      app.wxapis.getStorage('board_data').then((storage_res) => {

        // console.log(storage_res);

        if (storage_res.data.expires < Date.now()) {

          // 因为已经过期,所以你调用的结果是null

          return resolve(null);

        } else {

          return resolve(storage_res.data.all_info);

        }

      }).catch(function (err) {

        return resolve(null);

      });

    });

  },

 getNetworkData() { // 用来获取请求网络数据

    var promises = this.data.all_info.map(function(info){//数组的map方法返回

      var url = "https://api.douban.com/v2/movie/" + info.requestUrl;

      return app.wxapis.getNetJson(url, { count: 10 }).then((res) => {

        console.log('进行了一次网络请求');

          info.movies = res.data.subjects;

          return info;

      });

    });

Promise.all(promises).then((infos)=>{//promise解决多条数据请求,最大并发限制是十条

      console.log(infos);

      wx.setStorage({

        key: 'board_data',

        data: {

          all_info: infos,

          expires: Date.now() + 1000 * 60 * 60 * 24

        },

      });

      this.setData({

        all_info: infos

      });

    });

  },

onLoad: function (options) {//页面加载,判断是否有缓存。有则获取,无则请求

    // this.getCache();

    this.getCache().then((result) => {

      if (!result) {

        //没结果

        this.getNetworkData();

      } else {

        this.setData({

          all_info: result

        });

      }

    }).catch((err) => {

      this.getNetworkData();

    });

  },

5.跨页面传值

1 . 用 navigator标签传值或 wx.navigator

2.实例地址:https://www.jianshu.com/p/0135769db89c

6.tabBar栏中页面传值

a.在app.js中定义一个全局属性,他的属性值可用来保存全局数据。

b.用全局属性在onload函数中进行传值

7.列表页跳转详情页传id值

a.bindtap结合data-*把当前对象的id值获取到

b.navigator的url拼接参数传id值

8.Date.now()和new Date()的区别

1. Date.now()是构造函数的原型对象方法???

2.new Date()是构造函数实例化一个对象???

9.深拷贝&浅拷贝

1.有时候需要深拷贝一份给另外一个变量,不改变之前指针对应的对象

2.此时就需要用到深拷贝。

3.数组的filter返回一个新数组,不改变原来的数组结构,应该是深拷贝。

4. 在js中,数组和对象的复制如果使用=号来进行复制,那只是浅拷贝

5.数组的深拷贝方法

            -    slice(0)

            -     arr.concat()

            -    for循环,依次push到一个空对象中

            -    es6扩展运算符实现: var arr = [1,2,3,4,5]           var [ ...arr2 ] = arr

6.对象的深拷贝方法

            - 用到再说

相关文章

  • 每日一弹:小程序商城购物车

    1.索引 1.对象索引是属性名2.数组索引是下标3.多重索引,典型的json数据就是 2.全选联动按钮 1.数据渲...

  • 潍坊商城小程序网站开发制作

    潍坊商城小程序开发制作潍坊商城小程序开发制作潍坊商城小程序开发制作潍坊商城小程序开发制作潍坊商城小程序开发制作潍坊...

  • 每日签到红包的适用性

    商城小程序上线红包模块。 研究了热门的商城类小程序后,总结了几个比较常见的红包形式:新人红包、每日签到红包、分享拆...

  • 潍坊商城小程序软件开发制作

    潍坊商城小程序软件开发制作潍坊商城小程序软件开发制作潍坊商城小程序软件开发制作潍坊商城小程序软件开发制作潍坊商城小...

  • 小程序商城购物车规格

  • 潍坊软件开发制作商城小程序

    潍坊软件开发制作商城小程序潍坊软件开发制作商城小程序潍坊软件开发制作商城小程序潍坊软件开发制作商城小程序潍坊软件开...

  • 2018-12-24

    微必知科技,专业的小程序商城、小程序模板开发公司 小程序商城是当下最火的电商购物平台,随着小程序的遍及,小程序商城...

  • 2018-12-24

    微必知科技,专业的小程序商城、小程序模板开发公司 小程序商城是当下最火的电商购物平台,随着小程序的遍及,小程序商城...

  • 小程序商城是什么?商家应该建立吗?

    在小程序尚未诞生之时,商城常见的形态为商城网站、商城APP,小程序商城和前两个差不多,只不过将商城建立在小程序上。...

  • 2018-12-18

    小程序商城开发定制| 为什么品牌商纷纷搭建小程序商城? 微必知科技,专业的小程序商城、小程序模板开发公司 微信在2...

网友评论

本文标题:每日一弹:小程序商城购物车

本文链接:https://www.haomeiwen.com/subject/rpmbnxtx.html