<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # behaviors ## 定義和使用 behaviors `behaviors` 是用于組件間代碼共享的特性,類似于一些編程語言中的“mixins”或“traits”。 每個 `behavior` 可以包含一組屬性、數據、生命周期函數和方法,組件引用它時,它的屬性、數據和方法會被合并到組件中,生命周期函數也會在對應時機被調用。每個組件可以引用多個 `behavior` 。 `behavior` 也可以引用其他 `behavior` 。 `behavior` 需要使用 `Behavior()` 構造器定義。 **代碼示例:** ``` // my-behavior.js module.exports = Behavior({ behaviors: [], properties: { myBehaviorProperty: { type: String } }, data: { myBehaviorData: {} }, attached: function(){}, methods: { myBehaviorMethod: function(){} } }) ``` 組件引用時,在 `behaviors` 定義段中將它們逐個列出即可。 **代碼示例:** ``` // my-component.js var myBehavior = require('my-behavior') Component({ behaviors: [myBehavior], properties: { myProperty: { type: String } }, data: { myData: {} }, attached: function(){}, methods: { myMethod: function(){} } }) ``` 在上例中, `my-component` 組件定義中加入了 `my-behavior` ,而 `my-behavior` 中包含有 `myBehaviorProperty` 屬性、 `myBehaviorData` 數據字段、`myBehaviorMethod` 方法和一個 `attached` 生命周期函數。這將使得 `my-component` 中最終包含 `myBehaviorProperty` 、 `myProperty` 兩個屬性,`myBehaviorData` 、 `myData` 兩個數據字段,和 `myBehaviorMethod` 、 `myMethod` 兩個方法。當組件觸發 `attached` 生命周期時,會依次觸發 `my-behavior` 中的 `attached` 生命周期函數和 `my-component` 中的 `attached` 生命周期函數。 ## 字段的覆蓋和組合規則 組件和它引用的 `behavior` 中可以包含同名的字段,對這些字段的處理方法如下: - 如果有同名的屬性或方法,組件本身的屬性或方法會覆蓋 `behavior` 中的屬性或方法,如果引用了多個 `behavior` ,在定義段中靠后 `behavior` 中的屬性或方法會覆蓋靠前的屬性或方法; - 如果有同名的數據字段,如果數據是對象類型,會進行對象合并,如果是非對象類型則會進行相互覆蓋; - 生命周期函數不會相互覆蓋,而是在對應觸發時機被逐個調用。如果同一個 `behavior` 被一個組件多次引用,它定義的生命周期函數只會被執行一次。 ## 內置 behaviors 自定義組件可以通過引用內置的 `behavior` 來獲得內置組件的一些行為。 **代碼示例:** ``` Component({ behaviors: ['wx://form-field'] }) ``` 在上例中, `wx://form-field` 代表一個內置 `behavior` ,它使得這個自定義組件有類似于表單控件的行為。 內置 `behavior` 往往會為組件添加一些屬性。在沒有特殊說明時,組件可以覆蓋這些屬性來改變它的 `type` 或添加 `observer` 。 ### wx://form-field 使自定義組件有類似于表單控件的行為。 form 組件可以識別這些自定義組件,并在 submit 事件中返回組件的字段名及其對應字段值。這將為它添加以下兩個屬性。 | 屬性名 | 類型 | 描述 | 最低版本 | | ----- | ------ | -------- | ---------------------------------------- | | name | String | 在表單中的字段名 | [1.6.7](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html) | | value | 任意 | 在表單中的字段值 | [1.6.7](https://mp.weixin.qq.com/debug/wxadoc/dev/framework/compatibility.html) |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看