1. ホーム
  2. javascript

[解決済み] 小道具」の変化の聞き取り方

2022-03-22 15:11:31

質問

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: ...} が動作しない。

どうすればいいですか?

あなたは watch 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/dist/vue.js"></script>

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