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


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 相关文章推荐
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
详解Matlab中 sort 函数用法
Mar 20 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
Jul 05 Javascript
手机Web APP如何实现分享多平台功能
Aug 19 Javascript
JSP防止网页刷新重复提交数据的几种方法
Nov 19 Javascript
vue.js中Vue-router 2.0基础实践教程
May 08 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
vue中子组件的methods中获取到props中的值方法
Aug 27 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
May 14 Javascript
AngularJS动态生成select下拉框的方法实例
Nov 17 Javascript
Vue 一键清空表单的实现方法
Feb 07 Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
php 生成唯一id的几种解决方法
2013/03/08 PHP
深入php处理整数函数的详解
2013/06/09 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JS中不为人知的五种声明Number的方式简要概述
2013/02/22 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
jQuery实现大图轮播
2017/02/13 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
python实现在sqlite动态创建表的方法
2015/05/08 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python中shape计算矩阵的方法示例
2017/04/21 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
专注澳大利亚特产和新西兰特产的澳洲中文网:0061澳洲制造
2019/03/24 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
机电一体化大学生求职信
2013/11/08 职场文书
建筑经济管理专业求职信分享
2014/01/06 职场文书
运动会稿件300字
2014/02/14 职场文书
蓝颜请假条
2014/04/11 职场文书
学习十八届四中全会依法治国心得体会
2014/11/03 职场文书
商务代表岗位职责
2015/02/15 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
个人催款函范文
2015/06/24 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
python基础入门之普通操作与函数(三)
2021/06/13 Python