ホームページ  >  記事  >  ウェブフロントエンド  >  Vue のフォーム入力バインディングとコンポーネントの基本の分析

Vue のフォーム入力バインディングとコンポーネントの基本の分析

不言
不言オリジナル
2018-07-17 16:50:281100ブラウズ

この記事では、Vue のフォーム入力バインディングとコンポーネントの基本の分析について説明します。必要な方は参考にしてください。

目標:

  1. vue でのフォームの処理に習熟する

  2. これまでに学んだことを簡単に復習し、学んだことを適用する例を作成します (できればドキュメントなしで)

フォームvue

  1. vue の処理メソッドは v-model 命令を使用します。この命令は、form 要素内の value、checked、および selected 属性にデータを直接バインドすることができます。同時に、これらの属性も無視されます。初期値は無視され、常に vue インスタンスのデータがデータ ソースとして使用されます。

  2. v-model を使用した後は、4750256ae76b6b9d804861d8f69e79d340587128eee8df8f03d0b607fe983014 間の補間は無効になり、v-model に置き換えられます。

双方向バインディング (v -model)

1. バインディング値: text、textarea (文字列)

text:

<input v-model="message" placeholder="edit me">

textarea:

<textarea v-model="message" placeholder="add multiple lines"></textarea>

2. チェックアウト (単一バインディング ブール値、複数バインディング) string 配列 )、radio(string)

checkout(single):

<input type="checkbox" id="checkbox" v-model="checked">

checkout(multiple):

<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames">
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<label for="mike">Mike</label>

radio:

<input type="radio" id="one" value="One" v-model="picked">
<label for="one">One</label>
<br>
<input type="radio" id="two" value="Two" v-model="picked">
<label for="two">Two</label>

3. 選択されたバインディング: select(string)

<select v-model="selected">
    <option disabled value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>

modifier (v -model コマンドで使用)上)

.lazy: トリガーされるイベントは異なります。入力トリガーの代わりに変更トリガーを使用します

.number: 数値型に自動的に変換されます
.trim: ガード空白記号を自動的にフィルターします

form.html

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>表单输入绑定</title>
    <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>
</head>
<body>
    <p id="app">
        <form>
            <!-- 文本 -->
            <input type="text" v-model="formData.textValue">{{formData.textValue}}<br>
            <textarea v-model="formData.textareaValue"></textarea>{{formData.textareaValue}}<br>
            <!-- checkout(单个) -->
            <input type="checkbox" id="checkbox" v-model="formData.isChecked"><label for="checkbox">点我啊</label><br>
            <!-- 多个多选 -->
            <input type="checkbox" id="haha" value="haha" v-model="formData.checkedValues">
            <label for="haha">哈哈</label>
            <input type="checkbox" id="hoho" value="hoho" v-model="formData.checkedValues">
            <label for="hoho">呵呵</label>
            <input type="checkbox" id="hihi" value="hihi" v-model="formData.checkedValues">
            <label for="hihi">嘻嘻</label>
            <br>
            多选选中的是<span v-for="value of formData.checkedValues"> {{value}} </span>
            <br>
            <!-- 单选 -->
            <input type="radio" id="one" value="one" v-model="formData.pickedValue">
            <label for="one">one</label>
            <input type="radio" id="two" value="two" v-model="formData.pickedValue">
            <label for="two">two</label>
            <input type="radio" id="three" value="three" v-model="formData.pickedValue">
            <label for="three">three</label>
            <br>
            单选选中的是<span> {{formData.pickedValue}} </span>
            <br>
            <!-- 下拉选择框 -->
            <select v-model="formData.selectedValue">
                <option disabled value="">请选择</option>
                <option>A</option>
                <option>B</option>
                <option>C</option>
            </select>
            <br>
            下拉选择框选中的是<span> {{formData.selectedValue}} </span>
            <br>
            <a @click="submitForm">提交</a>
        </form>
    </p>
</p>
<script>
    var vm = new Vue({
        el: &#39;#app&#39;,
        data: {
            formData: {
                textValue: &#39;&#39;,
                textareaValue: &#39;&#39;,
                isChecked: true,
                checkedValues: [],
                pickedValue:&#39;&#39;,
                selectedValue: &#39;&#39;
            },
            msg: &#39;这是一句消息&#39;
        },
        methods: {
            submitForm: function(){
                for(var key in this.formData) {
                    obj[key] = this.formData[key];
                }
                console.log(this.formData);
                console.log(this.msg);
            }
        }
    });
</script>
</body>
</html>

関連推奨事項:

Vue でのイベント処理の分析

Vue でのクラスとスタイルのバインディングと条件付きおよびリストのレンダリングの分析

以上がVue のフォーム入力バインディングとコンポーネントの基本の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。