Weex - 구성 요소 정의

2588 단어
구성 요소를 정의하는 것은 하나의 옵션을 통해 구성 요소를 설명하는 것이다.이 옵션은 항상 탭의module에 값을 부여합니다.exports .</p>
<pre><code>module.exports = {
//a set of options here
}
</code></pre>
<h1>데이터 및 방법 </h1>
<pre><code>module.exports = {
data: function () {
return {x: 1, y: 2}
},
methods: {
doThis: function () {...},
doThat: function () {...}
},
...
}
</code></pre>
<p>데이터 옵션은 이 보기 모델이 감청할 수 있는 데이터 대상을 되돌려주는 함수입니다.methods는 모든 보기 모델을 포함하는 맵입니다. </p>
<p>모든 데이터나 method 속성은 보기 모델 실례에 에이전트됩니다.그래서 너는this를 통과할 수 있다.x데이터를 읽고 쓰거나this를 통해doThis () 호출 방법.lt;/p>
<p>완전한 예: </p>
<pre><code><template>
<div style="width: {{w}}; height: {{h}}; background-color: red;"onclick="update"></div>
</template>
<script>
module.exports = {
data: function () {
return {w: 750, h: 200}
},
methods: {
update: function (e) {
this.h += 200
}
}
}

이벤트

module.exports = {
  data: ...,
  methods: {
    foo: function () {
      ...
      this.$emit('customtype1', data)
    }
  },
  events: {
    customtype1: function (e) {
      console.log(e.type, e.detail)
    }
  },
  ...
}

이벤트 옵션을 사용하면 보기 모델이 생성될 때 사용자 정의 이벤트를 등록할 수 있습니다.그런 다음 이러한 유형의 이벤트를 감청하고 함수 유형의 값을 통해 처리합니다.
Weex는 이벤트 대상을 첫 번째 매개 변수로 연결된 이벤트에 전달합니다. 이 이벤트 대상은 e.detail에 이벤트 데이터를 포함합니다.

라이프 사이클

module.exports = {
  data: ...,
  methods: ...,
  init: function () {
    console.log('ViewModel constructor begins')
  },
  created: function () {
    console.log('Data observation finished')
  },
  ready: function () {
    console.log('Virtual DOM finished')
  },
  ...
}

Weex 뷰 모델은 현재 라이프 사이클 내의 갈고리 함수를 지원하며, 이러한 갈고리 함수는 구성 요소 옵션으로 쓸 수 있습니다.
  • init: 보기 모델의 구조 함수가 호출되기 시작할 때 활성화합니다
  • created: 보기 모델이 기본 데이터를 감청하지만 템플릿을 컴파일하지 않았을 때 활성화합니다
  • ready: 보기 모델이 기본 데이터를 감청하고 템플릿을 컴파일하여 가상 DOM을 생성하면 활성화됩니다

  • 참고: methods, events 또는 생명주기 방법이 매개 변수로 다른 함수에 전달될 때, 함수가 실행될 때의 상하문이 예상에 부합되는지 확인해야 합니다. 예를 들어
    module.exports = {
      data: function () {
        return {x: 1, y: 2}
      },
      ready: function () {
        // `undefined`
        //  
        this.foo(this.bar)
        // `1`
        //  
        this.foo(this.bar.bind(this))
      },
      methods: {
        foo: function (fn) {
          return fn()
        },
        bar: function () {
          return this.x
        }
      }
    }
    

    좋은 웹페이지 즐겨찾기