小程序項目總結(jié)

目錄(各種框架通用套路)

  • 一牡彻、靜態(tài)頁面
  • 二、生命周期
  • 三出爹、獲取數(shù)據(jù)
  • 四庄吼、渲染頁面
  • 五、綁定事件
  • 六严就、路由
  • 七总寻、頁面?zhèn)鲄?/li>
  • 八、存儲(本地存儲)
  • 九梢为、自定義組件

一渐行、小程序靜態(tài)頁面

  • (1)使用小程序組件,view相當(dāng)于div(塊級元素)技矮,text相當(dāng)與span(行內(nèi)元素)

  • (2)使用rpx作為小程序單位,可以根據(jù)屏幕寬度進行自適應(yīng)殊轴。

    • 1px = 2rpx
    • 開發(fā)微信小程序時設(shè)計師可以用 iPhone6 (width= 750rpx)作為視覺稿的標(biāo)準(zhǔn)。
  • (3) page{} 該頁面的最外層的容器標(biāo)簽袒炉,常用于給該頁面設(shè)置背景顏色

  • (4)開放數(shù)據(jù)open-data

    <open-data type="userAvatarUrl"></open-data>
    <open-data type="userGender" lang="zh_CN"></open-data>
    
  • (5)導(dǎo)入有贊小程序ui庫到項目中(有贊的自定義組件)

        npm i vant-weapp -S --production
  • 配置app.json文件中孽文,在"usingComponents"中將dist中所有的組件引入
        "usingComponents": {
            "van-action-sheet": "./dist/action-sheet/index",
            "van-area": "./dist/area/index",
            "van-badge": "./dist/badge/index",
            "van-badge-group": "./dist/badge-group/index",
            "van-button": "./dist/button/index",
            "van-card": "./dist/card/index",
            "van-cell": "./dist/cell/index",
            "van-cell-group": "./dist/cell-group/index",
            "van-checkbox": "./dist/checkbox/index",
            "van-checkbox-group": "./dist/checkbox-group/index",
            "van-col": "./dist/col/index",
            "van-dialog": "./dist/dialog/index",
            "van-field": "./dist/field/index",
            "van-goods-action": "./dist/goods-action/index",
            "van-goods-action-icon": "./dist/goods-action-icon/index",
            "van-goods-action-button": "./dist/goods-action-button/index",
            "van-icon": "./dist/icon/index",
            "van-loading": "./dist/loading/index",
            "van-nav-bar": "./dist/nav-bar/index",
            "van-notice-bar": "./dist/notice-bar/index",
            "van-notify": "./dist/notify/index",
            "van-panel": "./dist/panel/index",
            "van-popup": "./dist/popup/index",
            "van-progress": "./dist/progress/index",
            "van-radio": "./dist/radio/index",
            "van-radio-group": "./dist/radio-group/index",
            "van-row": "./dist/row/index",
            "van-search": "./dist/search/index",
            "van-slider": "./dist/slider/index",
            "van-stepper": "./dist/stepper/index",
            "van-steps": "./dist/steps/index",
            "van-submit-bar": "./dist/submit-bar/index",
            "van-swipe-cell": "./dist/swipe-cell/index",
            "van-switch": "./dist/switch/index",
            "van-switch-cell": "./dist/switch-cell/index",
            "van-tab": "./dist/tab/index",
            "van-tabs": "./dist/tabs/index",
            "van-tabbar": "./dist/tabbar/index",
            "van-tabbar-item": "./dist/tabbar-item/index",
            "van-tag": "./dist/tag/index",
            "van-toast": "./dist/toast/index",
            "van-transition": "./dist/transition/index",
            "van-tree-select": "./dist/tree-select/index",
            "van-datetime-picker": "./dist/datetime-picker/index",
            "van-rate": "./dist/rate/index",
            "van-collapse": "./dist/collapse/index",
            "van-collapse-item": "./dist/collapse-item/index",
            "van-picker": "./dist/picker/index"
        }

二、小程序生命周期

三夺艰、獲取數(shù)據(jù)

  • (1) 小程序只支持https
  • (2)需要配置域名白名單
  • (3)開發(fā)階段可以取消域名校驗 開發(fā)者工具右上角點擊詳情 ==> 不校驗合法域名

四芋哭、渲染頁面

  • (1)在模板上直接獲取data中的數(shù)據(jù)
      <view> {{ message }} </view>
  • (2)在js中通過this.data.xxx獲取data中的數(shù)據(jù),通過this.setData()修改data中的數(shù)據(jù)

  • (3)條件渲染wx:if="{{}}"

      <view wx:if="{{show}}"> True </view>
  • (4)列表渲染wx:for="{{}}"郁副,在組件上使用 wx:for 控制屬性綁定一個數(shù)組减牺,即可使用數(shù)組中各項的數(shù)據(jù)重復(fù)渲染該組件。默認數(shù)組的當(dāng)前項的下標(biāo)變量名默認為 index存谎,數(shù)組當(dāng)前項的變量名默認為item
      <view wx:for="{{array}}">
        {{index}}: {{item.message}}
      </view>

五拔疚、事件綁定

  • (1)在組件中綁定一個事件處理函數(shù)。:bind:事件名
    • bindtap既荚,當(dāng)用戶點擊該組件的時候會在該頁面對應(yīng)的Page中找到相應(yīng)的事件處理函數(shù)稚失。
    <viewbindtap="tapName"> Click me! </view>
  • (2)小程序綁定的函數(shù)無法傳參,需要data-xxx自定義屬性恰聘,通過event.currentTarget.dataset.xxx

  • (3)小程序使用bind綁定事件會有事件冒泡句各,使用catch來綁定事件可阻止事件冒泡

六、路由

1晴叨、頁面路由配置

  • 在app.json文件的"pages"中配置
  "pages": [
      "pages/index/index",
      "pages/logs/logs",
  ]

2凿宾、導(dǎo)航

  • (1)普通頁面跳轉(zhuǎn):<navigator></navigator>
   <navigator url="/pages/index/index">跳轉(zhuǎn)到新頁面</navigator>
  • (2)tabBar頁面跳轉(zhuǎn):添加屬性open-type="switchTab"
   <navigator  open-type="switchTab" url="/pages/index/index">跳轉(zhuǎn)到新頁面</navigator>
  • (3)JS:普通頁面跳轉(zhuǎn)
      wx.navigateTo({
        url: '/pages/index/index'
      })
  • (4)JS:tabBar頁面跳轉(zhuǎn)
      wx.navigateTo({
        url: '/pages/index/index'
      })

七、頁面?zhèn)鲄?/h3>
  • (1)傳參方式:通過url進行傳參兼蕊,使用菌湃?問號攜帶參數(shù)
    • 標(biāo)簽方式
       <navigator url="/pages/index/index?id=123">跳轉(zhuǎn)到新頁面  </navigator>
    
    • JS方式
        wx.navigateTo({
          url: '/pages/index/index?id=123'
        })
    
  • (2)接收參數(shù):在目標(biāo)頁面的onLoad生命周期中接收傳過來的參數(shù)
        onLoad: function (options) {
              console.log(options.id)  // id=123
        }
  • (3)頁面?zhèn)鲄鲗ο螅盒〕绦虿恢С种苯觽鬟f對象,需要將對象先轉(zhuǎn)換成JSON數(shù)據(jù)遍略,然后再在接收頁面轉(zhuǎn)換成原來的數(shù)據(jù)類型
    • 傳送方
        let dataStr = JSON.stringify(data);
          wx.navigateTo({
          url: `/pages/index/index?dataStr=${data}`
        })
    
    • 接收方
           onLoad: function (options) {
               let data = JSON.parse(options.dataStr)
           }
    

八惧所、數(shù)據(jù)緩存

  • (1)存
    try {
        wx.setStorageSync('key', 'value')
    } catch (e) { }
  • (2)取
    try {
        var value = wx.getStorageSync('key')
    } catch (e) { }
  • (3)清除
    try {
        wx.removeStorageSync('key')
    } catch (e) { }

九、自定義組件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绪杏,一起剝皮案震驚了整個濱河市下愈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蕾久,老刑警劉巖势似,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡履因,警方通過查閱死者的電腦和手機障簿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栅迄,“玉大人站故,你說我怎么就攤上這事∫阌撸” “怎么了西篓?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長憋活。 經(jīng)常有香客問我岂津,道長,這世上最難降的妖魔是什么悦即? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任吮成,我火速辦了婚禮,結(jié)果婚禮上辜梳,老公的妹妹穿的比我還像新娘赁豆。我一直安慰自己,他們只是感情好冗美,可當(dāng)我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布魔种。 她就那樣靜靜地躺著,像睡著了一般粉洼。 火紅的嫁衣襯著肌膚如雪节预。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天属韧,我揣著相機與錄音安拟,去河邊找鬼。 笑死宵喂,一個胖子當(dāng)著我的面吹牛糠赦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锅棕,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼拙泽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了裸燎?” 一聲冷哼從身側(cè)響起顾瞻,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎德绿,沒想到半個月后荷荤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體退渗,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年蕴纳,在試婚紗的時候發(fā)現(xiàn)自己被綠了会油。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡古毛,死狀恐怖翻翩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喇潘,我是刑警寧澤,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布梭稚,位于F島的核電站颖低,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏弧烤。R本人自食惡果不足惜忱屑,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暇昂。 院中可真熱鬧莺戒,春花似錦、人聲如沸急波。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽澄暮。三九已至名段,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泣懊,已是汗流浹背伸辟。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留馍刮,地道東北人信夫。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像卡啰,于是被迫代替她去往敵國和親静稻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,435評論 2 359

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