一: 参数传值的方法
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比较好用的属性和方法
新闻热点
疑难解答