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


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拖动技术 关于setCapture使用
Dec 09 Javascript
JSON 数据格式介绍
Jan 13 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
Feb 12 Javascript
jQuery过滤选择器:not()方法使用介绍
Apr 20 Javascript
javascript事件委托的方式绑定详解
Jun 10 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
jQuery中的Deferred和promise 的区别
Apr 03 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
Aug 23 Javascript
Angular表单验证实例详解
Oct 20 Javascript
vue中如何使用ztree
Feb 06 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
Aug 16 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 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 数组排序方法总结 推荐收藏
2010/06/30 PHP
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php根据年月获取季度的方法
2014/03/31 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
在html页面上拖放移动标签
2010/01/08 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
jQuery插件实现大图全屏图片相册
2015/03/14 Javascript
BootStrap Table 分页后重新搜索问题的解决办法
2016/08/08 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
React-router4路由监听的实现
2018/08/07 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
Python基于回溯法子集树模板解决全排列问题示例
2017/09/07 Python
python编程使用协程并发的优缺点
2018/09/20 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
Python元组知识点总结
2019/02/18 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
介绍下Lucene建立索引的过程
2016/03/02 面试题
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
社区灵活就业证明
2014/11/03 职场文书
2015年团支部工作总结
2015/04/03 职场文书
技术员岗位职责范本
2015/04/11 职场文书
小学运动会宣传稿
2015/07/23 职场文书
宿舍管理制度范本
2015/08/07 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
vue使用watch监听属性变化
2022/04/30 Vue.js
Java实现注册登录跳转
2022/06/16 Java/Android