Component配置參數詳解


Component配置參數詳解

 

 

1.常用配置

Component({

    // 相當於vue的mxins把公共模塊導出去

    behaviors: [],

    // 組件的其他配置

    options: {},

    // 擴展自定義組件

    definitionFilter: {},

    // 初始化數據

    data: {},

    // 接受父組件的參數

    properties: {},

    // 推薦在lifetimes里面定義組件生命周期函數

    lifetimes: {},

    // 定義組件的自定義方法

    methods: {},

    // 定義組件所在頁面的生命周期函數

    pageLifetimes: {},

    // 定義對外使用的class類

    externalClasses: [],

    // 監視器,監視數據的變化

    observers: {}

})

 

2.組件的生命周期函數

 

Component({

    lifetimes: {

        // 在組件實例剛剛被創建時執行,注意setData不能被調用,所以不適合用來獲取數據

        created () {

            console.log('實例剛剛被創建完畢')
        },
        
        // 在組件實例進入頁面節點樹時執行,可以用來獲取數據

        attached () {

            console.log('頁面渲染之前調用')
        },

        // 頁面初次渲染完畢調用

        ready () {

            console.log('頁面初次渲染完畢調用')
        },

        // 組件Dom發生改變調用

        moved () {

            console.log('組件Dom發生改變調用')
        },

        // 在組件實例被從頁面節點樹移除時執行

        detached () {

            console.log('頁面卸載調用')
        },

        // 組件方法拋出錯誤執行

        error () {

            console.log('組件方法發送錯誤')
        }
    }
})

 

 

3.組件所在頁面的生命周期

 

// 組件所在頁面的生命周期

Component({

    pageLifetimes: {

        show () {

          console.log('組件切入前台顯示')
        },

        hide () {

          console.log('組件切入后台隱藏')
        },

        resize () {

          console.log('組件所在的頁面尺寸變化時執行')
        }
    }
})

 

 

4.監聽器的使用

 

// 監聽數據的變化,可以監視 setData改變數據就會觸發監視器

Component({

    data: {

        count: 0,

        name: '小美'
    },

    observers: {

        count (val) {

            console.log(val)
        },

        // 可以監視多個數據

        "count, name" (val1, val2) {

            console.log(val1, val2)
         }
    },

    methods: {

        fn () {

            // 修改count的值,觸發數據監視器

            this.setData({

                count: 1
            })
        }
    }
})

 

 

5.公共方法或者數據導出

// 在utils目錄下新建behaviors.js

export const classicBeh = Behavior({

  data: {
    msg: '我是公共數據'
  },

  methods: {
    val () {
      this.setData({
        msg: '小美'
      })
    }
  },

  created () {

  },

  mounted () {
   
  }

})



// 在需要用到的組件或者頁面組件中使用


// 引入公共數據

import { classicBeh } from '../../utils/behaviors'

Component({

    behaviors: [classicBeh],

    lifetimes: {

        created () {

            // 可以拿到公共混入的數據

            console.log(this.data.msg)
        }
    }
})

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM