• vue自定义组件中vmodel的使用


    1.v-model的实现是vue监听@input实现的

    子组件代码如先

    <!--
     
    -->
    <template>
      <div class="hello">
        <input v-model="newMsg" />
        <!-- <select @change="change" >
          <option value="12323">111</option>
           <option value="12">222</option>
        </select> -->
      </div>
    </template>

    <script>
    export default {
      name: "helloWorld",
      model: {
        prop: 'msg',
        event:"input"
      },
      props: {
        msg: String,
      },

      data() {
        return {
          newMsg: ''
        }
      },
      watch: {
        newMsg(val) {
          this.$emit("input", val)
        },
        msg(val) {
          this.newMsg = val
        }
      },
      created() {
        this.newMsg = this.msg
      },
      methods: {
        change(val) {
          console.log(val.target.value);
          this.$emit("input", val.target.value)
        },
      },
    };
    </script>

    <!-- Add "scoped" attribute to limit CSS to this component only -->
    <style scoped>
    h3 {
      margin: 40px 0 0;
    }
    ul {
      list-style-type: none;
      padding: 0;
    }
    li {
      display: inline-block;
      margin: 0 10px;
    }
    a {
      color: #42b983;
    }
    </style>
    父组件代码如下
    <!--
     * @Author: your name
     * @Date: 2022-04-10 09:03:12
     * @LastEditTime: 2022-04-10 10:16:08
     * @LastEditors: Please set LastEditors
     * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
     * @FilePath: \plugin\test\src\App.vue
    -->
    <template>
      <div id="app">
        <img alt="Vue logo" src="./assets/logo.png">
        <!-- <helloWorld :msg="msg" @input="(val) => msg = val" /> -->
          <helloWorld v-model="msg" />
          {{msg}}
          <input v-model="msg"/>
      </div>
    </template>

    <script>
    // import HelloWorld from './components/HelloWorld.vue'

    export default {
      name: 'App',
      components: {
        // HelloWorld
      },
      data() {
        return {
          msg: 'wer'
        }
      }
    }
    </script>

    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
      margin-top: 60px;
    }
    </style>
  • 相关阅读:
    164.Maximum Gap
    163.Missing Ranges
    162.Find Peak Element
    161.One Edit Distance
    160.Intersection of Two Linked Lists
    7.5爬取猫眼Top100电影名单
    7.5文件操作
    7.4文件操作(1)
    7.4一个失败的网易云爬虫,
    7.3数据结构(1)
  • 原文地址:https://www.cnblogs.com/a8497336/p/16124981.html
Copyright © 2020-2023  润新知