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


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 相关文章推荐
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
angularJS中router的使用指南
Feb 09 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
使用Bootrap和Vue实现仿百度搜索功能
Oct 26 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
浅谈HTTP 缓存的那些事儿
Oct 17 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
Feb 13 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
Jul 19 Javascript
Vue data的数据响应式到底是如何实现的
Feb 11 Javascript
JS使用正则表达式实现常用的表单验证功能分析
Apr 30 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php 获取当前访问的url文件名的方法小结
2010/02/08 PHP
php 面试碰到过的问题 在此做下记录
2011/06/09 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
ThinkPHP进程计数类Process用法实例详解
2015/09/25 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
使用Python制作获取网站目录的图形化程序
2015/05/04 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
曼城官方网上商店:Manchester City
2019/09/10 全球购物
几个Linux面试题笔试题
2012/12/01 面试题
应届生学校辅导员求职信
2013/11/07 职场文书
校园活动宣传方案
2014/03/28 职场文书
厨房管理计划书
2014/04/27 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
2014年网管工作总结
2014/12/11 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏
MySQL数据库中的锁、解锁以及删除事务
2022/05/06 MySQL