zoukankan      html  css  js  c++  java
  • 组件上使用v-model

    组件上使用v-model

    <input v-model="searchText">
    

    等价于

    <input
      v-bind:value="searchText"
      v-on:input="searchText = $event.target.value"
    >
    

    当用在组件上时,v-model则会这样:

    <custom-input v-model="searchText"></custom-input>
    

    等同于

    <custom-input
      v-bind:value="searchText"
      v-on:input="searchText = $event"
    ></custom-input>
    

    为了让它正常工作,这个组件内的<input>必须:

    • 将其 value 特性绑定到一个名叫valueprop
    • 在其 input 事件被触发时,将新的值通过自定义的input事件抛出
    Vue.component('custom-input', {
      props: ['value'],
      template: `
        <input
          v-bind:value="value"
          v-on:input="$emit('input', $event.target.value)"
        >
      `
    })
    

    现在v-model就应该可以在这个组件上完美地工作起来了:

    <custom-input v-model="searchText"></custom-input>
    

    示例

    父组件App.vue中

    <template>
      <div id="app">
        <Model v-model="searchText"></Model>
        <span>{{searchText}}</span>
        <!-- 等价于
        <custom-input
            v-bind:value="searchText"
            @input="searchText = $event"
        ></custom-input> -->
      </div>
    </template>
    <script>
    import Model from "./components/Model";
    
    export default {
      name: "App",
      data: function() {
        return {
          searchText:''
        };
      },
      components: {
        Model
      }
    };
    </script>
    

    子组件model.vue

    <template>
      <div id="app">
        <input v-bind:value="value" @input="$emit('input', $event.target.value)">
      </div>
    </template>
    <script>
    export default {
      props: ["value"],
    
    };
    </script>
    
    

    过程:
    1.输入文字
    2.:value='search' 传给子组件
    3.子组件props接收
    4.子组件:value='value'
    5.子组件绑定input通过$emit传给父组件
    6.父组件@input='searchText = $event'接收

  • 相关阅读:
    WCF全面解析学习之地址Address(1)
    【转】理解和使用Oracle 8i分析工具-LogMiner
    【Wonder原创】NHibernate映射文件范例
    【转】C#经典面试题及答案
    【转】C#中abstract class和interface之探讨
    【转】130道C#面试题
    【Oracle学习】archivelog
    【转载】sql server 2005系统表详细说明
    【转】WINDOWS批处理命令详解
    【转】Linux find命令详解
  • 原文地址:https://www.cnblogs.com/guangzan/p/11269005.html
Copyright © 2011-2022 走看看