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


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 相关文章推荐
使用TextRange获取输入框中光标的位
Oct 14 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 Javascript
JavaScript判断按钮被点击的方法
Dec 13 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
bootstrap table配置参数例子
Jan 05 Javascript
js遍历获取表格内数据的方法(必看)
Apr 06 Javascript
JS实现简单的星期格式转换功能示例
Jul 23 Javascript
vue+iview 兼容IE11浏览器的实现方法
Jan 07 Javascript
在node中使用jwt签发与验证token的方法
Apr 03 Javascript
vue源码中的检测方法的实现
Sep 26 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
Apr 25 Javascript
JS中一些高效的魔法运算符总结
May 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
PHP数组式访问接口ArrayAccess用法分析
2017/12/28 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
JavaScript声明变量时为什么要加var关键字
2014/09/29 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
JavaScript+CSS实现仿Mootools竖排弹性动画菜单效果
2015/10/14 Javascript
Knockout自定义绑定创建方法
2015/12/26 Javascript
详解javascript实现瀑布流列式布局
2016/01/29 Javascript
JS实现刷新父页面不弹出提示框的方法
2016/06/22 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
2017/06/20 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
JS对象与json字符串相互转换实现方法示例
2018/06/14 Javascript
JS实现的tab页切换效果完整示例
2018/12/18 Javascript
angular4中引入echarts的方法示例
2019/01/29 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
python简单读取大文件的方法
2016/07/01 Python
Python之父谈Python的未来形式
2016/07/01 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Python图像处理之颜色的定义与使用分析
2019/01/03 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
创业计划书六个要素
2013/12/26 职场文书
电子商务专业自荐信
2014/06/02 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
优秀创业计划书分享
2019/07/19 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书