ホームページ > ウェブフロントエンド > Vue.js > vue が v-model を実装する方法を詳しく説明した記事 (コード例付き)

vue が v-model を実装する方法を詳しく説明した記事 (コード例付き)

藏色散人
リリース: 2023-01-06 21:26:21
転載
3529 人が閲覧しました

この記事では、vue に関する関連知識を提供します。主に、なぜ v-model を使用するのかについて説明します。 vue を使って v-model を実装する方法について興味がある方は見てみましょう。

vue が v-model を実装する方法を詳しく説明した記事 (コード例付き)

  • v-model を使用する理由 v-model は、双方向バインディング命令として、vue の 2 つのコア機能の 1 つでもあり、非常に使いやすく、フロントエンド開発の効率を向上させます。ビュー層では、モデル層は相互にデータをやり取りする必要があるため、v-model を使用できます。
  • v-modelの原理を簡単に説明します

v-modelは主に2つの機能を提供しており、ビュー層の入力値がデータの属性値に影響を与えます。データ属性の値が変更されると、ビューが更新され、レイヤーの値が変更されます。

核心は、一方では、モーダル レイヤーがdefinePropertyを通じて各属性をハイジャックし、変更が検出されると、関連するページ要素を通じて更新されるということです。一方、テンプレート ファイルをコンパイルすると、入力イベントがコントロールの v-model にバインドされるため、ページ入力は関連するデータ属性値をリアルタイムで更新できます。

  • v-modelとは v-model は Vue の双方向バインディング命令です。ページ上のコントロールによって入力された値を、関連するバインドされたデータ属性に同期的に更新できます。また、データ バインディング属性が変更されている場合、ページ上の入力コントロールの値も更新します。更新しました。

vue2.0実装メソッド

  • 親コンポーネント

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<template>

  <div id="app">

    {{username}} <br/>

    <my-input type="text" v-model="username"></my-input>

  </div>

</template>

 

<script>

import myinput from &#39;./components/myinput&#39;

export default {

  name: &#39;App&#39;,

  components:{

      myinput

  },

  data(){

    return {

      username:&#39;&#39;

    }

  }

 

}

</script>

ログイン後にコピー
  • myinput.vue:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<template>

    <div class="my-input">

        <input type="text" class="my-input__inner" @input="handleInput"/>

    </div>

</template>

 

<script>

    export default {

        name: "myinput",

        props:{

            value:{ //获取父组件的数据value

                type:String,

                default:&#39;&#39;

            }

        },

        methods:{

            handleInput(e){

                this.$emit(&#39;input&#39;,e.target.value) //触发父组件的input事件

            }

        }

    }

</script>

ログイン後にコピー

最も一般的なのは、モーダル ボックスの表示と閉じるを制御することです。v-model を使用して、例として要素の el-dialog コンポーネントを取ることもできます

    ##App.vue
  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    <template>

        <div>

            <kmDialog

                v-model="showDialog"

            >

            <el-button @click="show">点我</el-button>

        </div>

    </template>

    <script>

        import kmDialog from &#39;KmDialog.vue&#39;

        export default {

            components: {

                KmDialog

            }

            data () {

                return {

                    showDialog: false

                }

            },

            methods: {

                show() {

                    this.showDialog = true

                }

            }

        }

    </script>

    ログイン後にコピー
    KmDialog.vue
  • 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    <template>

        <el-dialog

            :title="isEdit ? &#39;编辑设备&#39; : &#39;新增设备&#39;"

            :visible.sync="value"

            width="40%"

            @close="cancel"

          >

            <span>这是一段信息</span>

        </el-dialog>

    </template>

    <script>

        export default {

            props: {

                value: {

                    default: false,

                    type: Boolean

                }

            },

            methods: {

                cancel() {

                    this.$emit(&#39;input&#39;, false)

                }

            }

        }

    </script>

    ログイン後にコピー
    推奨学習: 「

    vue.js ビデオ チュートリアル

以上がvue が v-model を実装する方法を詳しく説明した記事 (コード例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
関連するチュートリアル
人気のおすすめ
最新のコース
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート