原创经验:微信小程序开发总结
学习时间不短了.今天公司不加班总结一下我的开发经验吧,以下都是我认为很重要的总结哦!写下来让我自己也记得更清楚,同时希望可以帮助到有需要的同学哦
一: 参数传值的方法
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 = 2;
作者:ntt123456
来自:来源地址
原创经验:微信小程序开发总结的更多相关文章
- [干货教程]仿网易云课堂微信小程序开发实战经验
本篇文章想跟大家分享下:我们公司“湖北诚万兴科技”最近刚帮客户定制开发.目前已上线的“哎咆课堂”微信小程序的开发经验分享.首先大概介绍下这个小程序所涉及到的主要技术点:微信登录.微信支付.微信小程序F ...
- 微信小程序开发工具的数据,配置,日志等目录在哪儿? 怎么找?
原文地址:http://www.wxapp-union.com/portal.php?mod=view&aid=359 本文由本站halfyawn原创:感谢原创者:如有疑问,请在评论内回复 ...
- 微信小程序开发之详解生命周期方法
生命周期是指一个小程序从创建到销毁的一系列过程 在小程序中 ,通过App()来注册一个小程序 ,通过Page()来注册一个页面 先来看一张小程序项目结构 从上图可以看出,根目录下面有包含了app.js ...
- 零基础入门微信小程序开发
注:本文来源于:<零基础入门微信小程序开发> 课程介绍 本达人课是一个系列入门教程,目标是从 0 开始带领读者上手实战,课程以微信小程序的核心概念作为主线,介绍配置文件.页面样式文件.Ja ...
- 微信小程序开发总结(一)
微信小程序从2016年9月21日开始内测 ,以及在2017年1月9号正式发布也有一段时间了, 很多人开始拥抱微信小程序,我也是一样 ,从微信小程序内测开始就加入进来 , 开始研究微信小程序 ,属于最早 ...
- 微信小程序开发——开发者工具中素材管理功能使用的注意事项
为什么使用“素材管理”: 微信小程序环境中本地资源图片是无法通过 WXSS 获取的,可以使用网络图片,或者 base64,或者使用<image/>标签.. 当然,如果不想这么麻烦,你可能会 ...
- 微信小程序开发——点击按钮获取用户授权没反应或反应很慢的解决方法
异常描述: 点击按钮获取用户手机号码,有的时候会出现点击无反应或很久之后才弹出用户授权获取手机号码的弹窗,这种情况下,也会出现点击穿透的问题(详见:微信小程序开发——连续快速点击按钮调用小程序api返 ...
- 微信小程序开发——使用回调函数出现异常:TypeError: Cannot read property 'setData' of undefined
关键技术点: 作用域问题——回调函数中的作用域已经脱离了调用函数了,因此需要在回调函数外边把this赋给一个新的变量才可以了. 业务需求: 微信小程序开发,业务逻辑需要,需要把获取手机号码的业务逻辑作 ...
- 微信小程序开发学习资料
作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...
- 这是一篇满载真诚的微信小程序开发干货
1月9日零点刚过,张小龙与团队正式发布微信小程序.它究竟能在微信8.5亿用户中牵动多少人,现在还很难说.但对于创业者来讲,小程序无疑带来了新契机,以及服务“上帝”们的新方式. 从今天起,只要开发者登录 ...
随机推荐
- linux命令之磁盘与文件系统管理命令(上)
1.fdisk:磁盘分区工具 该命令是linux下常用的磁盘分区工具,但是只能给小于2TB的磁盘划分分区. 常用参数为-l,显示所有磁盘分区的信息. 示例: 1)显示磁盘分区列表 [root@boxi ...
- 用Echarts的力向导图可视化数据
学习背景:做一个图论的题目的时候需要将结果可视化来直观的看效果,所以使用Echarts来画.感觉效果不错. Echarts下载地址:https://echarts.baidu.com/download ...
- kali linux之拒绝服务攻击工具
hping3 几乎可以定制发送任何TCP/IP数据包,用于测试FW,端口扫描,性能测试 -c - 计数包计数 -i - interval wait(uX表示X微秒,例如-i u1000) ...
- ZJOI round1游记
Day 0 到镇海报道了 大佬们太多了--话说镇海的晚饭还真好吃啊-- 听说某人要咱去找bwh--不过咱和他也不是很熟啊--还是算了吧--(才不是因为嫌麻烦懒得去呢) 晚上吃完晚饭之后在镇海校园里参观 ...
- P3950 部落冲突
题目背景 在一个叫做Travian的世界里,生活着各个大大小小的部落.其中最为强大的是罗马.高卢和日耳曼.他们之间为了争夺资源和土地,进行了无数次的战斗.期间诞生了众多家喻户晓的英雄人物,也留下了许多 ...
- TCP的坚持定时器
一.简介 TCP不对ACK报文段进行确认,TCP只确认那些包含有数据的ACK字段. 如果一个确认丢失了,双方就有可能因为等待对方而使得链连接终止: 接收方等待接受数据,因为已经向发送方通告了一个非0的 ...
- css中的block与none
*{ display:none; } div{ display:block; } div 会正常显示粗来吗?不会 因为*代表所有元素,包括div的父级元素html,body 父级元素都不显示了,子元素 ...
- P2319 [HNOI2006]超级英雄 题解
[HNOI2006]超级英雄 题目描述 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目, ...
- Scrapy 抓取股票行情
安装scrapy会出现错误,我们选择anaconda3作为编译环境,搜索scrapy安装(有错误自查) 创建scrapy爬虫项目: 调出cmd,到相应目录:输入: scrapy startprojec ...
- 爬虫防封IP
当抓取数据逐渐增大时,服务器的负荷会加大,会直接封掉来访IP: 采取措施: 1.创建请求头部信息: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT ...