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


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 词法作用域和闭包分析说明
Aug 12 Javascript
jQuery中对节点进行操作的相关介绍
Apr 16 Javascript
JavaScript实现GriwView单列全选(自写代码)
May 13 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
基于JS实现仿百度百家主页的轮播图效果
Mar 06 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
少女风vue组件库的制作全过程
May 15 Javascript
JavaScript实现刮刮乐效果
Nov 01 Javascript
JS中箭头函数与this的写法和理解
Jan 14 Javascript
如何优化vue打包文件过大
Apr 13 Vue.js
简单实现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
laravel如何开启跨域功能示例详解
2017/08/31 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
ie 调试javascript的工具
2009/04/29 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
跟我学习javascript的arguments对象
2015/11/16 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
python实现html转ubb代码(html2ubb)
2014/07/03 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
用python简单实现mysql数据同步到ElasticSearch的教程
2018/05/30 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
教师演讲稿范文
2014/01/08 职场文书
我的梦想演讲稿
2014/04/30 职场文书
考博专家推荐信
2014/05/10 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
安全员岗位职责范本
2015/04/11 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫
css样式important规则的正确使用方式
2022/06/10 HTML / CSS
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL