用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

9

主题

84

帖子

1327

积分

布道者

Rank: 6Rank: 6

积分
1327
2017-1-7 15:38:07 ntt123456开发者认证 布道者 楼主 131051
学习时间不短了.今天公司不加班总结一下我的开发经验吧,以下都是我认为很重要的总结哦!写下来让我自己也记得更清楚,同时希望可以帮助到有需要的同学哦
一: 参数传值的方法
1:  data-id
我们可以给HTML元素添加data-*属性来传递我们需要的值,使用方法说明:
(1)设置data-id
[AppleScript] 纯文本查看 复制代码
<view class="block" bindtap="playTap" data-id="{{modle.id}}">

(2):  取值 + 传值
[AppleScript] 纯文本查看 复制代码
 playTap:function(e) {
        const dataset = e.currentTarget.dataset;
        wx.navigateTo({
          url: '../play/index?id='+ dataset.id
        })
        console.log(dataset.id);
    }

(3):取值
[AppleScript] 纯文本查看 复制代码
 onLoad:function (param) {
    //页面初始化
        this.setData({
            currentId:param.id
        })
}

data-*注意事项:data-*名称不能有大写字母,曾经我就因为大写了一个字母,找了半天的才发现这个错误..data-*属性中不可以存放对象
2:  设置id 的方法标识来传值
使用方法说明:
(1)设置id
[AppleScript] 纯文本查看 复制代码
<view bindtap=“playTap" id="{{modle.id}}">

(2)取值
通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值
3:  在navigator中添加参数传值
使用方法说明
(1)传值:在navigator的属性url后拼接?id(参数名字)=要传递的值    (如果多个参数用&分开   &name=value&.......)
[AppleScript] 纯文本查看 复制代码
<navigator url="../my/my?id={{item.id}}" wx:for="{{modles}}">

(2)取值:
[AppleScript] 纯文本查看 复制代码
onLoad (params){
        app.fetch(API.detail + params.id,(err,data) => {
        })
    }

二:数据请求封装
1.将所有的接口放在统一的js文件中并导出
[AppleScript] 纯文本查看 复制代码
const api = {
    interface1: 'https://........',
     interface2: 'https://.......',
     interface3: 'https://....',
     .....
}
module.exports = api;

2:在app.js中创建封装请求数据的方法
[AppleScript] 纯文本查看 复制代码
  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: 在子页面中调用封装的方法请求数据
[AppleScript] 纯文本查看 复制代码
import API from "../../api/api.js";
const app = getApp();
const conf = {
    data:{
        title:'正在拼命加载中...',
        loadding:true
    },
    onLoad (){
        app.fetch(API.hot,{},(err,data) => {
        })
    },

三:使用模板(发现模板真是个好东西哦!)
1:定义模板:name设置模板的名字
[AppleScript] 纯文本查看 复制代码
定义模板 
<template name="homecell">
     <view class="item">
    </view>
 </template>

(2)使用模板
首先引入模板
[AppleScript] 纯文本查看 复制代码
<import src="../../commonXml/homecell.wxml" /> 

然后使用模板is后写模板的name..通过data来传递需要是数据
[AppleScript] 纯文本查看 复制代码
<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;

评分

参与人数 3原创 +1 浮云 +41 收起 理由
天下雪 + 1 + 20 赞一个!
amis + 16 很给力!
鲨鱼辣椒炒蛋 + 5 很给力!

查看全部评分

这是一篇好分享呢     完全符合要求  
有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
天下雪 发表于 2017-1-7 15:43
这是一篇好分享呢     完全符合要求

之前我的总结总是记在自己的笔记里..以后在这里记也不错呢,方便查找还可以分享给大家,一起加油哦!
ntt123456 发表于 2017-1-7 15:47
之前我的总结总是记在自己的笔记里..以后在这里记也不错呢,方便查找还可以分享给大家,一起加油 ...

我已经感觉到一座宝库向我飞来   
有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
别人分享的经验,节省了我们探求真相的时间。我们唯一能给予的回报,便是心怀感恩。——鲨鱼辣椒炒蛋
App({
  data: {  myName=周杰伦 },
  getVisitorInfo:function(info){
    var myphoneNo=15134XXXX50
    if(info.sex==female&&info.age<30){
      this.setData({"美女约吗?"+myphoneNo })
    }else{
      this.shift({myphoneNo})
    }
})
2017-1-7 16:57:43 Nazi乐于助人 版主
6#
我这渣渣又学到东西了,很好很强大
2017-1-10 08:31:08 ontheway 来自手机 架构狮
7#
请教一个问题,如何获取当前元素它父级的属性。比如说是一个双层列表循环,当点击最内层的单个元素时怎么获取它父级的当前index?
2017-1-10 10:08:48 wx_9ad13a259e 来自手机 新手上路
8#
膜拜大神。
ontheway 发表于 2017-1-10 08:31
请教一个问题,如何获取当前元素它父级的属性。比如说是一个双层列表循环,当点击最内层的单个元素时怎么获 ...

如果要是我做的话,我会声明一个变量来存储父级元素的index,改变的时候就setData保存一下,,使用的时候就直接拿来用了,,希望可以帮到你
很实用

[AppleScript] 纯文本查看 复制代码
for (var i in obj) {
      console.log(obj[i]);
}

输出这个才是每个值吧
本帖最后由 ntt123456 于 2017-1-10 11:55 编辑

恩恩,你的这个方法是输出每个值,数组还有这样一个方法
[AppleScript] 纯文本查看 复制代码
obj.forEach((item,index) => {
item  //数组中每一个值,index是序号
})



ntt123456 发表于 2017-1-10 11:53
恩恩,你的这个方法是输出每个值,数组还有这样一个方法
[mw_shl_code=applescript,true]
obj.forEach((item ...

哦哦,是这样啊
https://zhuanlan.zhihu.com/p/24887693

楼主快来火钳刘明!
发新帖
您需要登录后才可以回帖 登录 | 立即注册