小程序開發(fā)中的記錄【持續(xù)更新】

調(diào)試

  • 通過 console.log(e) 可以打印任何東西锋玲,當(dāng)然可以通過斷點(diǎn)查看
  • 此時(shí)如果是真機(jī)調(diào)試的話,點(diǎn)擊右上角也可以打開調(diào)試功能盾碗,但只能打印信息(從新打開后點(diǎn)擊右下角的vConsole
Paste_Image.png

代碼運(yùn)行

  • 文檔 說會自動保存,但通過實(shí)際測試京髓,修改代碼后需要手動保存芥玉,而且沒有全部文件保存灿巧,修改一個(gè)文件保存一個(gè)抠藕,command + r 不能更新,command + s 就會保存并編譯運(yùn)行

查看代碼是否已保存

  • 沒保存最新就有個(gè)小綠點(diǎn)


    沒保存就有個(gè)小綠點(diǎn)

新建項(xiàng)目

  • 必須要有index文件购岗,不然總是提示報(bào)錯(cuò),找不到路徑

文件格式 文檔

  • js 文件中Page必須是首字段乾吻,不能修改,數(shù)據(jù)都放data里面诡必,自定義事件同級
//獲取應(yīng)用實(shí)例
var app = getApp()
Page({
  // 數(shù)據(jù)
  data: {
    motto: 'MiHome_Store'
  },
  //事件處理函數(shù)
  bindViewTap: function () {
    wx.navigateTo({
      url: '../logs/logs'
    })
  }
})
  • wxml 文件是 數(shù)據(jù)界面展示 稿蹲,跟HTML 一樣涂炎,只是標(biāo)簽不一樣了,可參考官方文檔

  • wxss 文件是 界面樣式修改震缭,更CSS 差不多欢瞪,聽說暫時(shí)不能完美兼容CSS3

  • json 文件是 基本配置遣鼓,如果是在app.json 中寫的就是全局配置骑祟;如果在對應(yīng)頁面中寫就指定頁面的配置,但是pages只能寫在app.json 中潜圃,注意:必須在pages設(shè)置項(xiàng)目中的文件路徑,才能正常使用文件吧凉,pages 第一個(gè)配置的路徑就會首先顯示的界面

圖片格式支持

  • 不支持jpeg 格式胀瞪,支持png傍妒、支持j'p

創(chuàng)建tabBar

  • 在app.json 中設(shè)置,此時(shí)顯示的路徑必須是已經(jīng)在pages 中配置好
"tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "框架",
        "iconPath": "image/wechat.png",
        "selectedIconPath": "image/wechatHL.png"
      },
      {
        "pagePath": "pages/component/component",
        "text": "組件",
        "iconPath": "image/wechat.png",
        "selectedIconPath": "image/wechatHL.png"
      },
      {
        "pagePath": "pages/api/api",
        "text": "API",
        "iconPath": "image/wechat.png",
        "selectedIconPath": "image/wechatHL.png"
      },
      {
        "pagePath": "pages/tool/tool",
        "text": "工具",
        "iconPath": "image/wechat.png",
        "selectedIconPath": "image/wechatHL.png"
      }
    ]
  }

頁面中設(shè)置窗口配置信息

  • app.json中需要添加window標(biāo)簽,子頁面json不需要添加window標(biāo)簽,直接在{}內(nèi)設(shè)置
"window": {
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "小程序",
  "backgroundColor": "#eeeeee",
  "backgroundTextStyle": "light",
  "enablePullDownRefresh": false
  }
{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "gitkong",
    "navigationBarTextStyle":"black"
}

項(xiàng)目文件快速創(chuàng)建

  • 直接在app.json 的 pages 中設(shè)置路徑就可以,比如你想在pages文件夾中創(chuàng)建image文件夾苛吱,image文件夾中創(chuàng)建四個(gè)文件橡疼,image.js住拭、image.json杠娱、image.wxml趴俘、image.wxss 太惠,只需要添加路徑pages/image/image 就行了


    快速創(chuàng)建 文件

數(shù)據(jù)讀取

  • 單個(gè)字段屬性缚柳,通過 {{xxx}}
    autoplay="{{autoplay}}" 其中 autoplay 是 js 里面的data json 中的字段

  • 數(shù)組遍歷,通過 wx:for或者類似iOS 的 banner_list[0]單個(gè)獲榷掠摹(默認(rèn)下標(biāo)變量是index,對應(yīng)當(dāng)前項(xiàng)變量是item)
    wx:for-items="{{banner_list[0].banner}}"

    • 可以使用block 標(biāo)簽 配合,item 就是遍歷后的某一個(gè),通過點(diǎn)語法繼續(xù)向下獲取
    <block wx:for-items="{{banner_list[1].banner}}">
     <image src="{{item.pic_url}}" class="menue-image" />
     </block>
    

數(shù)據(jù)更新

  • 改變js 中的 data 數(shù)據(jù) , 通過this.setData 修改;this 是當(dāng)前頁面的一個(gè)實(shí)例對象厨钻,當(dāng)然如果是嵌套方法里面就要注意使用this,此時(shí)this就代表內(nèi)部嵌套的方法
// name 是 data 中的一個(gè)字段屬性诱建,通過點(diǎn)擊方法changeName 修改
changeName:function(){
    this.setData({
      name : 'gitkong'
    })
  }

傳值

  • 一般頁面中不需要傳形參值(表單也不需要)格仲,默認(rèn)是把當(dāng)前的控件傳進(jìn)去,在方法中可以獲取實(shí)參e(名字隨你寫),HTML 中可以通過document獲取當(dāng)前的控件對象驱敲,但小程序這邊廢棄了,雖然方法還存在,但調(diào)用是一點(diǎn)效果都沒有的

changeName: function(e){
this.change(e)
}

> 此時(shí)獲取到的e 就是 當(dāng)前的控件對象,用 `console.log(e)` 打印


![打印的信息](http://upload-images.jianshu.io/upload_images/1085031-b1501b00b8988901.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- 當(dāng)然,如果你在js 需要 獲取到 wxml(界面) 中 傳遞的值稿湿,利用 id 或者 `data-你喜歡的變量名` 給個(gè)view綁定 個(gè)值押赊,然后在實(shí)參獲取到了,當(dāng)然你喜歡傳多少個(gè)都可以,名字不一樣就行绍填,**注意:不管你外部命名的變量名是否含有大寫字母,dataset內(nèi)部獲取到的字段key 都全部轉(zhuǎn)成小寫,獲取的時(shí)候注意,例如`id="{{detailFrameItem.detailName}}" data-index="{{detailIndex}}"` ,此時(shí)注意:里面dataset 里面的字段都是小寫,不管你在外面怎么寫叁怪;比如此時(shí)我傳入 data-detailIndex(駝峰命名法)血柳,此時(shí)dataset 對應(yīng)的字段是 detailindex**

WXML

<button class = "name" bindtap = "changeName" data-src = "{{name}}">{{name}}</button>

js

changeName: function(e){
console.log(e)
console.log(e.target.dataset.src)
}


![綁定](http://upload-images.jianshu.io/upload_images/1085031-b933a1f512c4bb44.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)



- 形參一般是在js 文件中傳遞,通過 `this.方法名(形參)` 調(diào)用并傳參

change:function(e){
// 此時(shí)打印的就是 hello
console.log(e)
},

changeName: function(e){
this.change('hello')
console.log(e.target.dataset.src)
},


#頁面跳轉(zhuǎn)
- 通過 `wx.navigateTo` 方法跳轉(zhuǎn),同級目錄就只有一個(gè) `../` 上層有多少個(gè)就添加多少個(gè)`../`

wx.navigateTo({
url: '../question/question'
})


- 通過 `navigator` 標(biāo)簽,在 WXML 中創(chuàng)建并傳入跳轉(zhuǎn)的url

#換行
-  `<br>` 是不行的,要用 `\n`

#setData 里面不能處理任何邏輯映皆,只能是賦值

this.setData({
xx : ''
})

![error](http://upload-images.jianshu.io/upload_images/1085031-abaf13959ebef298.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/400)


# JS 的 forin 是遍歷出角標(biāo),并不能直接獲取數(shù)組元素

for (var item in items){
console.log(items[item].name)
}


# let 接收變量
- 小程序使用let 接收變量澈驼,然后修改了徘六,編譯通過待锈,運(yùn)行還不報(bào)錯(cuò)谍失;所以推薦都是用var 來接收吧颠印,防止手殘,找問題找死你

# js 里面的點(diǎn)語法
- 編寫代碼的時(shí)候,js 文件中询件,你可以點(diǎn)任何東西舆瘪,他不報(bào)錯(cuò)也不提示

# 注釋問題
- 都可以通過快捷鍵 command + / 注釋
- **注意:app.json 里面不能添加注釋,編譯不過**

# 斷點(diǎn)問題
- 如果你打了斷點(diǎn),沒取消剩拢,然后去編輯代碼,當(dāng)你編譯觸發(fā)斷點(diǎn)后性穿,界面不會跳到調(diào)試界面勺三,所以要注意自己的斷點(diǎn)喔

# wxss 文件中代碼不提示
- 在wxss 文件中,如果首次布局對應(yīng)的 class選擇器或者id 選擇器需曾,不會提示吗坚,但第二次就會提示了,類似于xcode 8 的一個(gè)bug呆万,導(dǎo)入文件的時(shí)候商源,首次不會提示,需要手動打

# 快速拷貝單行
- WXML 里面編寫代碼同樣桑嘶,一行可以寫到底,寫得很長躬充,全選復(fù)制就麻煩逃顶,其實(shí)它像HTML 一樣,只要你光標(biāo)停在那充甚,不選中以政,command + c 就是復(fù)制整行代碼了

#標(biāo)簽內(nèi)容換行問題
- 設(shè)置寬度了,但如果是英文伴找,不會換行盈蛮,如果是中文,會自動換行

![中文能換行](http://upload-images.jianshu.io/upload_images/1085031-b9b33c409a003500.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![英文不會換行](http://upload-images.jianshu.io/upload_images/1085031-5e4ec083ac83ca0d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#json 格式顯示
- 因?yàn)樾〕绦蛑袥]有了code標(biāo)簽技矮,因此不能直接顯示json 數(shù)據(jù)抖誉,可以手動添加\n 實(shí)現(xiàn)換行,但\t 沒效果衰倦,不能實(shí)現(xiàn)縮進(jìn)

#頁間文本中使用嵌套袒炉,換行問題
- 里面的標(biāo)簽不要使用view,view會默認(rèn)換行樊零,而text不會

![view 標(biāo)簽會自動換行](http://upload-images.jianshu.io/upload_images/1085031-99eba50e14338081.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

![text標(biāo)簽不會自動換行](http://upload-images.jianshu.io/upload_images/1085031-31cdaa2b867131ad.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#WXML 字符轉(zhuǎn)義問題
- 在小程序中我磁,HTML 對應(yīng)的轉(zhuǎn)義字符已經(jīng)不適用了,官方文檔也沒發(fā)現(xiàn)有對應(yīng)的解決辦法驻襟,測試能通過 js 中獲取

![WXML 字符轉(zhuǎn)義問題](http://upload-images.jianshu.io/upload_images/1085031-0d66c4e3163118e3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#text標(biāo)簽嵌套事件綁定響應(yīng)問題
- 默認(rèn)text是不能響應(yīng)事件的夺艰,view可以,如果嵌套text標(biāo)簽內(nèi)部要響應(yīng)事件沉衣,最外層的text需要綁定響應(yīng)事件才能響應(yīng)

#路徑問題
app.json 中的路徑是絕對路徑郁副,而圖片加載、文件導(dǎo)入都是相對路徑豌习,可以通過../回到上一級來獲取

#import 和 include 導(dǎo)入問題
- import 是 導(dǎo)入模板霞势,就是使用 `template` 定義的
- include 是 導(dǎo)入標(biāo)簽內(nèi)容

#require 獲取其他 js 文件的路徑問題
- `var common = require('../../../../../alert.js')` 此時(shí)如果路徑不正確烹植,不會報(bào)錯(cuò),但會將整個(gè)項(xiàng)目的路徑打亂愕贡,還沒搞清楚

#快速關(guān)閉其他標(biāo)簽的問題
- 右鍵選擇關(guān)閉其他標(biāo)簽或者關(guān)閉右側(cè)標(biāo)簽草雕,此時(shí)會彈出一個(gè) `檢查` 按鈕,而且是截取了屏幕的點(diǎn)擊事件固以,此時(shí)需要先 按 `esc` ,去掉 `檢查` 按鈕墩虹,然后才能選擇關(guān)閉標(biāo)簽

![關(guān)閉其他標(biāo)簽](http://upload-images.jianshu.io/upload_images/1085031-22c8e121e052eaf2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

#HTTPS 請求
- 模擬器調(diào)試情況下,可以關(guān)閉ATS檢查憨琳,請求http可以獲取數(shù)據(jù)
- 真機(jī)情況下诫钓,就必須使用HTTPS請求

# 數(shù)組操作
- 跟js完全一樣,通過 `concat` 拼接數(shù)組篙螟,通過 `slice` 截取數(shù)組

# textarea 的注意問題
- textarea 使用會有默認(rèn)的高度菌湃,而且默認(rèn)是透明顏色,因此容易出現(xiàn)遮擋問題而沒發(fā)現(xiàn)遍略。


# 列表中數(shù)據(jù)保存的問題
- 如果是列表數(shù)據(jù)的話惧所,很容易出現(xiàn)數(shù)據(jù)被清空,因?yàn)楹芏鄷r(shí)候我們通過setData重新賦值绪杏,此時(shí)修改的內(nèi)容沒更新下愈,就出現(xiàn)清空情況,作者是通過綁定事件蕾久,監(jiān)聽輸入焦點(diǎn)不在的時(shí)候势似,保存一次數(shù)據(jù)

# picker 真機(jī)不顯示的問題
- 如果你的picker 里面是input 并且disable為false,那么在模擬器上是可以正常使用的僧著,但真機(jī)上就沒辦法顯示履因;換成view標(biāo)簽就行了

#video 標(biāo)簽播放問題
- 模擬器上面是不能全屏播放,而且多個(gè)視頻都共用一套盹愚,真機(jī)不是

#安卓設(shè)配flex問題
- 蘋果使用flex布局沒問題搓逾,但放到安卓上就出現(xiàn)很多問題,flex沒效果杯拐,需要使用 `display: -webkit-flex;`

#小程序上使用 `background-image ` 的使用問題
- 真機(jī)上不能顯示本地路徑的圖片霞篡,網(wǎng)絡(luò)的可以
- 模擬器上都能正常顯示

#監(jiān)聽上拉加載更多的狀態(tài),可以實(shí)現(xiàn)系統(tǒng)的方法 `onReachBottom`

# form 表單提交問題
- 使用form提交雖然快捷端逼,但適配安卓的時(shí)候就出現(xiàn)很多問題朗兵,會出現(xiàn)按鈕點(diǎn)擊無效果,不建議使用form表單提交

# 小程序或者js中的常量表示
- const 表示 常量顶滩,var 表示變量余掖,let 也是變量,但是局部變量(外界不能訪問)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末礁鲁,一起剝皮案震驚了整個(gè)濱河市盐欺,隨后出現(xiàn)的幾起案子赁豆,更是在濱河造成了極大的恐慌,老刑警劉巖冗美,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件魔种,死亡現(xiàn)場離奇詭異,居然都是意外死亡粉洼,警方通過查閱死者的電腦和手機(jī)节预,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來安拟,“玉大人,你說我怎么就攤上這事糠赦」兀” “怎么了拙泽?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哲戚。 經(jīng)常有香客問我艾岂,道長,這世上最難降的妖魔是什么王浴? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任脆炎,我火速辦了婚禮,結(jié)果婚禮上氓辣,老公的妹妹穿的比我還像新娘秒裕。我一直安慰自己钞啸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布梭稚。 她就那樣靜靜地躺著絮吵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蹬敲。 梳的紋絲不亂的頭發(fā)上莺戒,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天急波,我揣著相機(jī)與錄音,去河邊找鬼食店。 笑死赏寇,一個(gè)胖子當(dāng)著我的面吹牛吉嫩,可吹牛的內(nèi)容都是我干的嗅定。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼忙迁,長吁一口氣:“原來是場噩夢啊……” “哼碎乃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起恰梢,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤梗掰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后及穗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苛白,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年焚虱,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片著摔。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖禾锤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情倡鲸,我是刑警寧澤黄娘,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站逼争,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胆敞。R本人自食惡果不足惜杂伟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望观话。 院中可真熱鬧越平,春花似錦频蛔、人聲如沸喧笔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浆劲。三九已至哀澈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間割按,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工现柠, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人比然。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓周循,卻偏偏與公主長得像,于是被迫代替她去往敵國和親湾笛。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容