質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

1回答

2809閲覧

vue3の双方向データバインドについて

suzu1122

総合スコア37

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2021/10/20 14:35

vue3の双方向データバインドについて質問です。
vue3で子コンポーネントのcheckboxの値を親に渡したいです。

js

1<template> 2 <div> 3 <Test v-model="checked" /> 4 <button type="submit" class="text-white bg-blue-500"> 5 新規登録 6 </button> 7 </div> 8</template> 9 10<script> 11import Test from "@/components/Test.vue"; 12 13export default { 14 name: "Testbb", 15 components: { 16 Test, 17 }, 18 data() { 19 return { 20 checked: false, 21 }; 22 }, 23 methods: { 24 submit: function() { 25 console.log(this.checked); 26 }, 27 }, 28}; 29</script> 30

js

1<template> 2 <label> 3 <input type="checkbox" v-model="inputedValue" /> 4 {{ checked }} 5 </label> 6</template> 7 8<script> 9export default { 10 name: "Test", 11 model: { 12 prop: "checked", 13 event: "change", 14 }, 15 props: { 16 checked: { 17 type: Boolean, 18 }, 19 }, 20 computed: { 21 inputedValue: { 22 get() { 23 alert(this.checked); 24 return this.checked; 25 }, 26 set(newValue) { 27 this.$emit("change", newValue); 28 }, 29 }, 30 }, 31}; 32</script> 33

子でalertしているところが、checkboxを切り替えても発動しません。(初期表示時は読み込まれる)
https://codesandbox.io/s/vue-js-zai-ru-men-v-model-wozheng-sikuli-jie-siteqin-zi-jian-konponentonodetachuan-bo-womasutasuru-v-model-ver-forked-cls6o?file=/src/components/CustomCheckbox.vue
こちらのinput textを抜いて真似しただけですが、何が間違っているのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

参考しているURLで利用されているのはVue2の双方向データバインドですが、Vue3ではv-modelに破壊的変更が行われたためそれは正しく動作しません。
Vue3ではv-modelでバインドされる(既定の)プロパティ名はmodelValue、v-modelで変更があったことを処理するイベントはupdate:modelValueに変わりました。

以下URLを確認してみてください。
https://v3.ja.vuejs.org/guide/migration/v-model.html#v-model

投稿2021/10/21 02:15

ku__ra__ge

総合スコア4524

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

suzu1122

2021/10/21 02:17

なるほど、よくわかりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問