微信小程序 数据封装,参数传值等经验分享


Posted in Javascript onJanuary 09, 2017

微信小程序开发总结:

一: 参数传值的方法

1: data-id

我们可以给HTML元素添加data-*属性来传递我们需要的值,使用方法说明:

(1)设置data-id

<view class="block" bindtap="playTap" data-id="{{modle.id}}">

(2): 取值 + 传值

playTap:function(e) {

    const dataset = e.currentTarget.dataset;

    wx.navigateTo({

     url: '../play/index?id='+ dataset.id

    })

    console.log(dataset.id);

  }

(3):取值

onLoad:function (param) {

  //页面初始化

    this.setData({

      currentId:param.id

    })

}

data-注意事项:data-名称不能有大写字母,曾经我就因为大写了一个字母,找了半天的才发现这个错误..data-*属性中不可以存放对象

2: 设置id 的方法标识来传值

使用方法说明:

(1)设置id

<view bindtap=“playTap" id="{{modle.id}}">

(2)取值

通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值

3: 在navigator中添加参数传值

使用方法说明

(1)传值:在navigator的属性url后拼接?id(参数名字)=要传递的值 (如果多个参数用&分开 &name=value&.......)

<navigator url="../my/my?id={{item.id}}" wx:for="{{modles}}">

(2)取值:

onLoad (params){

    app.fetch(API.detail + params.id,(err,data) => {

    })

  }

二:数据请求封装

1.将所有的接口放在统一的js文件中并导出

const api = {

  interface1: 'https://........',

   interface2: 'https://.......',

   interface3: 'https://....',

   .....

}

module.exports = api;

2:在app.js中创建封装请求数据的方法

fetch(url,data, callback) {

    wx.request({

      url,

      data: data,

      header: {

        'Content-Type': 'application/json'

      },

      success(res) {

        callback(null, res.data);

      },

      fail(e) {

        callback(e);

      }

    })

  },

3: 在子页面中调用封装的方法请求数据

import API from "../../api/api.js";

const app = getApp();

const conf = {

  data:{

    title:'正在拼命加载中...',

    loadding:true

  },

  onLoad (){

    app.fetch(API.hot,{},(err,data) => {

    })

  },

三:使用模板(发现模板真是个好东西哦!)

1:定义模板:name设置模板的名字

定义模板

<template name="homecell">
  
     <view class="item">
  
    </view>
  
   </template>

(2)使用模板首先引入模板

<import src="../../commonXml/homecell.wxml" />

然后使用模板is后写模板的name..通过data来传递需要是数据

<template is="homecell" data="{{item}}"></template>

四:Array比较好用的属性和方法

  • Array.isArray() 方法用来判断某个值是否为Array。如果是,则返回 true,否则返回 false。
  • concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回.
  • forEach() 方法对数组的每个元素执行一次提供的函数(回调函数)。
  • join() 方法将数组中的所有元素连接成一个字符串。
  • keys() 方法返回一个数组索引的迭代器。
  • map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组
  • pop() 方法删除一个数组中的最后的一个元素,并且返回这个元素。
  • push() 方法添加一个或多个元素到数组的末尾,并返回数组新的长度(length 属性值)。
  • toString() 返回一个字符串,表示指定的数组及其元素。

五:对象Object常用方法

1 初始化方法

var obj = [];
var obj = new obj();
var obj = Object.create(null);

2 添加元素的方法

dic[“key”] = “value”;

3 删除key的方法

delete dic[“key”];

4 清空词所有条目

dic.clear();

5 删除

delete dic;

6 查看所有属性的方法

Object.keys(obj);

对象的所有键名都是字符串,所以加不加引号都可以,如果键名是数值,会被自动转为字符串但是,如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),也不是数字,则必须加上引号,否则会报错6 读取属性

obj.name || obj['name']

注意: 数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。7 检查变量是否声明

if(obj.name) || if(obj['name'])

8 in 运算符用于检查对象是否包含某个属性,如果包含返回true,否则返回false

if ( ‘x' in obj) {return 1}

9 for … in 循环用来遍历一个对象的全部属性

for (var i in obj) {
console.log(obj);
}

10 with 语句作用: 操作同一个对象的多个属性时,提供一些书写的方便

with(obj) {
name1 = 1;
name2 = 2;
}
等同于
obj.name1 = 1;
obj.name2 =

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
js png图片(有含有透明)在IE6中为什么不透明了
Feb 07 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
Nov 24 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
理解JavaScript原型链
Oct 25 Javascript
Angular中响应式表单的三种更新值方法详析
Aug 22 Javascript
vuex state及mapState的基础用法详解
Apr 19 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
Aug 13 Javascript
Javascript节流函数throttle和防抖函数debounce
Dec 03 Javascript
JavaScript实现队列结构过程
Dec 06 Javascript
简单实现jQuery多选框功能
Jan 09 #Javascript
微信小程序开发之Tabbar实例详解
Jan 09 #Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 #Javascript
JS获得多个同name 的input输入框的值的实现方法
Jan 09 #Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 #Javascript
原生Javascript插件开发实践
Jan 09 #Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 #Javascript
You might like
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
2015/05/12 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
网上抓的一个特效
2007/05/11 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
js 显示base64编码的二进制流网页图片
2014/04/04 Javascript
Javascript基础教程之关键字和保留字汇总
2015/01/18 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python pip替换为阿里源的方法步骤
2019/07/02 Python
Python @property原理解析和用法实例
2020/02/11 Python
解决python调用自己文件函数/执行函数找不到包问题
2020/06/01 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
小学生自我鉴定
2013/10/12 职场文书
活动邀请函范文
2014/01/19 职场文书
社区党员先进事迹
2014/01/22 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
机关单位2016年法制宣传日活动总结
2016/04/01 职场文书
小学2016年“我们的节日·重阳节”活动总结
2016/04/01 职场文书
导游词之蓬莱长岛
2019/12/17 职场文书