原创经验:微信小程序开发总结
學習時間不短了.今天公司不加班總結一下我的開發經驗吧,以下都是我認為很重要的總結哦!寫下來讓我自己也記得更清楚,同時希望可以幫助到有需要的同學哦
一: 參數傳值的方法
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
來自:來源地址
轉載于:https://blog.51cto.com/12350196/1890246
總結
以上是生活随笔為你收集整理的原创经验:微信小程序开发总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于clang插件的一种iOS包大小瘦身
- 下一篇: [认证授权] 1.OAuth2授权