快速入門-微信小程序

小程序

1.警告信息顯示與隱藏

project.config.json => setting => checkSiteMap (false / true)

2. App.json設置

創建文件和切換主頁面顯示 app.json => pages => ""

全局下拉刷新 app.json => window => "enablePullDownRefresh": true

下拉背景顏色配置 app.json => window => "backgroundColor" : "16進制顏色"

下拉文本顏色 app.json => window => "backgroundTextStyle": "dark / light"只能選其一

自定義tabBar
新建文件夾 custom-tab-bar => 右鍵新建component  必須是index

app.json 導航欄tabBar

"tabBar": {
    "custom": true, // 照顧低版本得
    "list": {
        "pagePath": "當前頁的路徑",
        "text": "當前頁的名稱",
        "iconPath": "/沒點過的字體圖標", 
        "selectedIconPath": "/選中的時候字體圖標"
    }
}

3.常用標簽

<view></view> == <div></div>

<text></text> == <span></span>

<image/> == <img/>

<navigator url="" /> == <a href="" />

<scroll-view> </scroll-view>滾動組件 需要配和 scorll-x 橫向滾動,scroll-y 縱向滾動

<swiper> <swiper-item></swiper-item> </swiper> 輪播圖

<navigator url="/" open-type="switchTab"> </navigator>(tarBar導航欄)聲明式導航

<navigator url="/"> </navigator> 非tabBar導航欄內可省略不寫open-type="switchTab"

編程式導航(tabBar導航欄)方法內 wx.switchTab({ url: '/路徑' })

編程式導航 (非tabBar導航欄) 方法內 wx.navigateTo({ url: '/路徑' })

4.事件

1.觸摸(點擊) 事件 bindtap 傳參 data-自定義="{{}}"

接收傳參 e.target.dataset.自定義

2.input 事件 bindinput

接收input的value e.detail.value

5.方法

  1. wx:if wx:elif wx:else 顯示與隱藏是操作DOM
  2. hidden 顯示與隱藏是操作 css樣式隱藏
  3. wx:for 是循環遍歷 wx:for-index="自定義index索引" wx:for-item="自定義item值"

6.生命周期

Page({
onLoad : function (options) { }, // 監聽頁面加載,一個頁面只調用一次
onShow : function () { }, // 監聽頁面顯示
onReady : function () { }, // 監聽也買你初次渲染,一個頁面只能調用一次
onHide : function () { }, // 監聽頁面隱藏
onUnload : function () { } // 監聽頁面卸載,一個頁面只能調用一次
})

7.wxs腳本 注意只能使用es5

內聯式定義

<wxs module="自定義"> module.export.方法名 = function (str) { return str.方法 }</wxs>

內聯式腳本使用 {{'自定義'.方法名( 待修改的狀態 )}}

外聯式定義

以.wxs的文件, 定義方法 module.exports = { 方法名: 方法名 } // 因為es5沒有簡寫所以必須寫全

外聯式調用 <wxs src="/路徑" module="自定義"></wxs> 使用跟內聯式一樣


注冊全局組件

app.json => "usingComponents": {

 **"自定義組件名": "/ 組件的路徑"**

}

8.組件注意事項

1.properties 接收外面的狀態 === data 組件自己的狀態

2.方法都要寫在methods 如果要改對象中的某個數據 '對象.數據 ‘

3.組件中的監聽器 observers 與 methods同級

# '監聽的數據.**' 對象數據比較多的情況用通配符來

observers: {
    '監聽的數據.**': function (obj) {
        this.setState({
            修改的數據: obj.**
        })
    }
}

9.組件的生命周期

// 組件的生命周期
lifetimes: {
    created() {
        
    },
    attached() {
        
    }
},
// 監聽組件的生命周期
pageLifetimes: {
    show() {
        頁面顯示進入此鉤子
    }
    hide() {
        頁面隱藏進入此鉤子
    }
}

10. 組件插槽 和 樣式隔離

optaions:  {  
   multipleSlots: true,  // 開啟多個插槽
   styleIsolation: (apply-shared (頁面單方面影響組件樣式), shared(互相影響)) // 樣式隔離
}

11.組件父傳子,子傳父

// 父傳子
<子組件 子接收父親的變量="{{ 父親的data值 }}"></子組件>
子組件的js => properties: { 變量名: 類型 } // 接收的狀態值  

// 子傳父
<子組件 bind:自定義事件名="父組件的方法"></子組件>
子組件內的js, this.triggerEvent('自定義事件名',{ 傳給父組件的 (對象) })
父組件的方法通過 e.detail.對象名 來獲取子傳父的值
                                     
// 獲取子組件的實例對象
<子組件 class="自定義" / id="自定義"></子組件>
父組件的方法內 (可以獲取子組件的實例對象)
const child = this.selectComponent('.自定義類') / ('#自定義id')

12.behavior 公共狀態

module.exports = Behavior({
    // 屬性節點(接收外面傳來的數據)
    properties: {},
    // 私有數據
    data: {},
    // 事件處理函數和自定義方法節點
    methods: {},
    ...
})

13.定義樣式變量

Page {
    --開頭: 色域;
}

14.小程序的項目API promise化

app.js 
import { promisifyAll } from 'miniprogram-api-promise' // 導入下載的包

const wxp = wx.p = {}

promisifyAll(wx,wxp)

15.Mobx

// store.js 創建 mobx
import { action, observable } from 'mobx-miniprogram' // 導入下載的包

export const store = observable({
    // 狀態
    (自定義): 1,
    // 計算屬性
    get 自定義() {
        retrun this.num 
    } 
    // 方法
    自定義: action(function (step) {
        this.自定義 += step
    })
})

// 在其他的頁面導入store  js文件 (非組件內)
import { createStoreBindings } from 'mobx-miniprogram-bindings' // 導入下載的包
import { store } from '../../store/store'

Page({
    
   // 生命周期 -- 監聽頁面加載
   onLoad: function (options) {
    this.storeBindings = createStoreBindings(this, {
      store,
      fields: ['numA','numB','sum'], // 數字字段,計算屬性
      actions: ['updateNum1']  // 方法
    })  
   },
    
  // 生命周期 -- 監聽頁面卸載
  onUnload: function () {
    this.storeBindings.destoryStoreBindings()
  },
    
})

// 組件內導入store
import { storeBindingsBehavior } from 'mobx-miniprogram-bindings' // 導入下載的包
import { store } from '../../store/store'

Component({
  behaviors: [storeBindingsBehavior],
  storeBindings: {
    store,
    fields: {   // 數字字段,計算屬性
      numA: 'numA', 
      numB: 'numB',
      sum: 'sum'
    },
    actions: {
      updateNum2: 'updateNum2'  // 方法
    }
  },
})

16.分包

// app.json 創建分包  
"subPackages": [
    {
      "root": "自定義", // 分包的文件夾名
      "pages": [
        "pages/cat/cat" // 分包的子分包
       ],
      "name": "起別名", // 分包的別名
      "independent": true  // 開啟獨立分包 (獨立分包不能使用主包的公共資源)
    }
  ],
    
// 分包預下載
"preloadRule": {
    "這是主包的子包路徑": {
        "packages": ['分包的name / 或者root'],
         "network": "all / wifi" // 指的是wifi下載分包,還是所有得網絡情況都下載分包
    }
}

17.忽略git上傳文件

新建 .gitignore 
忽略文件
/node_module
/unpackage/dist  // 注意要將unpackage目錄下創建一個 .gitkeep

18.mixins 公共狀態數據

實例
mixins文件夾 => 自定義.js

// 創建
import {mapGetters} from 'vuex'
export default {
  computed: {
    ...mapGetters('m_cart',['total'])
  },
  onShow() {
    this.setBadge()
  },
  methods: {
    setBadge() {
      uni.setTabBarBadge({
        index: 2,
        text: this.total + ''
      })
    }
  }
}

// 引用
import 自定義 from '@/mixins/自定義'
export default {
    mixins: [tabBarMix]
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容