• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Protoss: 零食商场

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

Protoss

开源软件地址:

https://gitee.com/yhf7/Protoss

开源软件介绍:

Protoss

介绍

零食商场

软件架构

微信小程序+ThinkPHP5.07

安装教程

下载导入小程序

笔记

小程序中ES6类

  • 在小程序中我们也是可以使用ES6的语法去是实现我们的业务逻辑
  • 在ES6中新增了,类方法那我们就来一起用一样吧
  • 实际与后端的类没有区别
  1. 创建类
// class 构建一个类class Home{    // 类的构造函数  constructor () {  }    // 自定义的类内部方法  getBannerData () {      ...  }}//外部想要使用这个类就需要向export抛出这个类export {Home};
  1. 使用类
// 1.首先引入这个类 home-mode.js这个是我的类文件名import {Home} from 'home-model.js';// 2.实例化 home-model 的home类var home = new Home();// 3.调用Page({    onLoad: function () {        // 调用方法        home.getBannerData(() => {            ....        })    }})

小程序中ES6类继承

// 1.引入类import {Base} from '../../utils/base.js'// 2.继承类class Home extends Base {  constructor () {    // 有构造函数的时候必须调用基类的构造函数    super();  }  // 3. 调用基类方法  getBannerData () {      // 直接this加方法名就可以了      this.request()  }}export {Home};

requert请求封装 (如何使用上面说了)

  1. 在我们调用后端的api的时候我们会大量的去请求后端的Api,这样会使得我们前端的业务逻辑不断的重复
  2. 我们使用面向对象的方式对请求函数做了封装
  3. 这样我们代码的复用性更高,代码的重复性更少
  4. 封装这种复用性很高的函数时我们都要创建基类使得让其他的类去继承使用
// 1. utils/base.js  创建utils 新疆base基类文件// 2. 新建 config.js 用来储存公共数据或配置信息// 3. 引入配置类import {Config} from 'config.js'// 2. 创建基类Baseclass Base {    // 构造函数  constructor() {      // 获取配置在信息类的 公共url信息    this.baseRequestUrl = Config.restUrl;  }  /**   * 请求封装   */  request (params) {    // url内外拼接    var url = this.baseRequestUrl + params.url;    // 判断没有传获取方式默认为get    if (!params.type) {      params.type = 'GET'    }    // 调用微信请求api    wx.request({      url: url,      data: params.data,      method: params.type,      header: {        'content-type':'application/json',        'token': wx.getStorageSync('token')      },      success: res => {        // 判断函数,存在才调用        // 返回信息的函数回调        params.sCallback&&params.sCallback(res.data);      },      fail: err => {        console.log(err);      }    })  }}export {Base};

小程序自定义模版

  • 在我们的页面开发中也会存在很多的页面会有复用
  • 那我们定义一个模块模版就更容易让我们使用
  1. 创建模版
// 模版// 为模版加name 唯一标示用来调用的时候用的,其实内部和写html没有区别<template name="products">    <view class="products-box">            </view></template>
  1. 调用模版
<!-- 引入模版文件 --><import src="../tpls/products/products-tpl.wxml" /><view>    <!-- 使用模版和定义一样只是吧name改为is就可以了 -->    <!-- data给模版传递数据 -->    <!-- 做一个对象传递过去使用起来会方便一点,方法名自定义 -->    <!-- key为products 传递的值为productsArr -->    <template is="products" data="{{products:productsArr}}"></template></view>

事件绑定、页面跳转、数据传输

  • 小程序中的事件绑定就是 bindtap 后面带函数名
  • 页面跳转 wx.navigateTo api调用
  • 页面之间数据传输,可以同url传输
  1. 数据绑定,数据传输
<swiper indicator-dots="true" autoplay="true" class="swiper">    <block wx:for="{{bannerArr}}" wx:key="index">      <!-- 事件绑定,bindtap绑定事件,后面带方法名就可以了 -->      <!-- 数据传输 data-开头后面自定义名字 -->      <!-- 没有为什么微信规定的反正就这么干 -->      <swiper-item data-id="{{item.key_word}}" bindtap="onProductsItemTap">        .....      </swiper-item>    </block>  </swiper>
  1. 实现方法,跳转页面
Page({  /**   * banner点击事件   * event自带的变量   */  onProductsItemTap: function (event) {    // id,存放在event.currentTarget.dataset.id中    // 所有传过来的数据都在 event.currentTarget.dataset 中,传过来的时候是不带data的要记住    // 这里我做了一个小小的封装提高复用性,放在了基类中    //getDataSet(event,key) {    // return event.currentTarget.dataset[key];    //}    var id = home.getDataSet(event,"id");    // 调用接口    // url就是你要跳转页面的地址    // 可以通过url传送参数到页面中去    wx.navigateTo({      url: '../product/product?id=' + id,    });  }})
  1. 跳转的页面获取调整前传过来的数据
Page({  /**   * 生命周期函数--监听页面加载   * 就是在跳转后的页面js文件中, onload 里面获取   * options是自带的常量   */  onLoad: function (options) {    // 传的是命名什么就.什么    var id = options.id;    console.log(id)  }})

动态修改导航栏

  • wx.setNavigationBarTitle
/**   * 生命周期函数--监听页面初次渲染完成   */  onReady: function () {    // 动态设置导航栏    wx.setNavigationBarTitle({      title: this.data.name    })  }

拒绝频繁向服务器请求数据

  • 在我们请求数据时使用对象保存起来
  • 再次请求前判断以请求的不让请求直接再对象中获取

触底刷新

/**   * 页面拉到底部   */  onReachBottom: function () {      }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
cordova-pos: 基于cordova-pos的底座+h5完成二维码+NFC收银发布时间:2022-03-25
下一篇:
questionSystem: 问卷项目问卷创建发布时间:2022-03-25
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap