万象更新 Html5 - vue.js: vue 指令(v-model 双向绑定)

源码 https://github.com/webabcd/Html5
作者 webabcd

万象更新 Html5 - vue.js: vue 指令(v-model 双向绑定)

示例如下:

vue\directive\vmodel.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>vue 指令(v-model 双向绑定)</title>
    <script src="../../node_modules/vue/dist/vue.global.js"></script>
</head>
<body>

<div id="root">

    <!--
        v-model 指令,用于双向绑定(即 vm 变了 v 就变,v 变了 vm 就变)
          文本输入框是通过 oninput 事件告知 vm 发生变化的
          checkbox/radio/select 是通过 onchange 事件告知 vm 发生变化的

        v-model 指令支持 lazy, number, trim 修饰符( modifier)
          v-model.lazy
            文本输入框改为通过 onchange 事件告知 vm 发生变化
          v-model.number
            文本输入框在告知 vm 发生变化时,传递给 vm 的数据是原始值转换为数字类型后的数据
          v-model.trim
            文本输入框在告知 vm 发生变化时,传递给 vm 的数据是原始值 trim() 后的数据
          注:修饰符支持链式调用,比如 v-model.lazy.trim 也是合法的
    -->

    <!--文本输入框与字符串绑定-->
    <input v-model="myMessage">
    <br>
    <input v-model.lazy="myMessage">
    <br>
    <input v-model.number="myMessage"></input>
    <br>
    <textarea v-model.trim="myMessage"></textarea>

    <br>
    <!--checkbox 绑定 bool 值(true 就是选中)-->
    <input type="checkbox" v-model="myChecked">{{myChecked}}

    <br>
    <!--checkbox 绑定字符串数组(checkbox 的 value 值在字符串数组中就是选中)-->
    <input type="checkbox" value="webabcd" v-model="myCheckedNames">
    <input type="checkbox" value="wanglei" v-model="myCheckedNames">
    {{ myCheckedNames }}

    <br>
    <!--radio 绑定字符串数组(radio 的 value 值在字符串数组中就是选中)-->
    <input type="radio" value="webabcd" v-model="myCheckedName">
    <input type="radio" value="wanglei" v-model="myCheckedName">
    {{ myCheckedName }}

    <br>
    <!--select 绑定字符串(option 的 value 值与 select 绑定的字符串相等,则是选中)-->
    <select v-model="mySelected">
        <option value="0">你是谁?</option>
        <option value="1">我是 webabcd</option>
        <option value="2">我是 wanglei</option>
    </select>
    {{ mySelected }}

    <br>
    <!--通过 v-for 指令构造 select 的 option-->
    <select v-model="mySelected">
        <option v-for="option in myOptions" :value="option.value">
            {{ option.text }}
        </option>
    </select>
    {{ mySelected }}

</div>

<script>

    Vue.createApp({
        data() {
            return {
                myMessage: "hello: vue",
                myChecked: true,
                myCheckedNames: ["webabcd"],
                myCheckedName: "wanglei",
                mySelected: "2",
                myOptions: [
                    { text: '你是谁?', value: '0' },
                    { text: '我是 webabcd', value: '1' },
                    { text: '我是 wanglei', value: '2' }
                ]
            }
        }
    }).mount('#root')

</script>
</body>
</html>

源码 https://github.com/webabcd/Html5
作者 webabcd

posted @ 2024-09-24 11:09  webabcd  阅读(7)  评论(0编辑  收藏  举报