「props」の変更をリッスンする方法 質問する

「props」の変更をリッスンする方法 質問する

の中にVueJs 2.0 ドキュメント変更をリッスンするフックが見つかりませんprops

VueJs にはこのようなフックonPropsUpdated()や類似のフックはありますか?

アップデート

@wostex が示唆したように、自分のプロパティを試してみましたwatchが、何も変わりませんでした。その後、特別なケースがあることに気付きました。

<template>
    <child :my-prop="myProp"></child>
</template>

<script>
   export default {
      props: ['myProp']
   }
</script>

myProp親コンポーネントが受信したものをコンポーネントに渡していますchild。その後、はwatch: {myProp: ...}動作しません。

ベストアンサー1

watchprops が変更されたときにコードを実行するように props を設定できます。

new Vue({
  el: '#app',
  data: {
    text: 'Hello'
  },
  components: {
    'child' : {
      template: `<p>{{ myprop }}</p>`,
      props: ['myprop'],
      watch: { 
        myprop: function(newVal, oldVal) { // watch it
          console.log('Prop changed: ', newVal, ' | was: ', oldVal)
        }
      }
    }
  }
});
<script src="https://unpkg.com/vue@2/dist/vue.min.js"></script>

<div id="app">
  <child :myprop="text"></child>
  <button @click="text = 'Another text'">Change text</button>
</div>

おすすめ記事