原創經驗:微信小程序開發總結

學習時間不短了.今天公司不加班總結一下我的開發經驗吧,以下都是我認爲很重要的總結哦!寫下來讓我自己也記得更清楚,同時希望可以幫助到有需要的同學哦


一: 參數傳值的方法


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

來自:來源地址



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章