zoukankan      html  css  js  c++  java
  • 表单和 v-model

    思维导图

    form 做表单一定要用 form+button组合

    <template>
        <div id="app">
            登录
            <form @submit.prevent="onSubmit">    //.prevent阻止默认动作
                <label>
                    <span>用户名</span>
                    <input type="text" v-model="user.username"/>
                </label>
                <label>
                    <span>密码</span>
                    <input type="password" v-model="user.password"/>
                </label>
                <button type="submit">
                    登录
                </button>
            </form>
    
        </div>
    </template>
    
    <script>
      export default {
        name: 'App',
        data() {
          return {
            user: {
              username: '',
              password: ''
            },
            x: ''
          }
        },
        methods: {
          onSubmit() {
            console.log(this.user)
          }
        },
        components: {}
      }
    </script>
    

    image.png

    v-model

    <label>
                    <span>用户名</span>
                    <input type="text" v-model="user.username"/>
    </label> 
    
    上面的v-model等价于
    
    <label>
                    <span>用户名</span>
                    <input type="text" :value="user.username"
                    @input = "user.username = $event.target.value"/>
    </label>
    
    
    
    

    自己封装一个

    <template>
        <div class="red wrapper">
            <input :value="value" @input="$emit('input',$event.target.value)"/>
        </div>
    </template>
    
    <script>
    
      export default {
        name: 'MyInput',
        props: {
          value: {
            type: String
          }
        },
      }
    </script>
    
    <style scoped>
        .red {
            background: red;
        }
        .wrapper{
            display: inline-block;
        }
    </style>
    
    作者:过程是风景
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    cookie
    手写Promise/Promise.all/promise.race
    Hbuilder如何真机调试?
    什么是深拷贝?什么是浅拷贝?如何实现深拷贝?
    Vue.set()?怎么用?
    vueRouter怎么用?
    Vue如何实现组件间通信?
    reduce()累加器
    filter()数组遍历
    map()数组遍历
  • 原文地址:https://www.cnblogs.com/justcho/p/13472948.html
Copyright © 2011-2022 走看看