zoukankan      html  css  js  c++  java
  • Vue学习笔记-父子通信案例

     1 <div id="app">
     2     <cpn :number1="num1"
     3          :number2="num2"
     4          @num1change="numchange1"
     5          @num2change="numchange2"
     6     >
     7 
     8     </cpn>
     9 </div>
    10 
    11 
    12 <template id="cpn">
    13     <div>
    14         <!--1.子组件里的双向绑定只能用子组件data里面的值-->
    15 
    16         <!--<h2>{{number1}}</h2>-->
    17         <!--&lt;!&ndash;props单向数据流,不允许子组件直接改变props里面的值&ndash;&gt;-->
    18         <!--&lt;!&ndash;<input type="text" v-model="number1">&ndash;&gt;-->
    19         <!--&lt;!&ndash;可以用子组件data里面的数据实现双向绑定&ndash;&gt;-->
    20         <!--<input type="text" v-model="dnumber1">-->
    21         <!--<h2>{{number2}}</h2>-->
    22         <!--<input type="text" v-model="dnumber2">-->
    23 
    24 
    25         <!--2.子组件的值改变时传到父组件改变父组件的值-->
    26         <!--v-model的本质是v-bind绑定一个value属性,v-on指令给当前元素绑定input事件-->
    27 
    28         <h2>{{number1}}</h2>
    29         <input type="text" :value="dnumber1" @:input="num1Input">
    30         <h2>{{number2}}</h2>
    31         <input type="text" :value="dnumber2" @:input="num2Input">
    32     </div>
    33 </template>
    34 
    35 </body>
    36 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    37 <script>
    38     const cpn = {
    39         template: '#cpn',
    40         props: { //props单向数据流,父组件传递到子组件的值不允许子组件直接改变
    41             number1: Number,
    42             number2: Number
    43         },
    44         data() { //想要修改props里的值可以在data里面保存一份,然后修改
    45             return {
    46                 dnumber1: this.number1,
    47                 dnumber2: this.number2
    48             }
    49         },
    50         methods: {
    51             num1Input (event) {
    52                 this.dnumber1 = event.target.value
    53                 this.$emit('num1change',this.dnumber1)
    54             },
    55             num2Input (event) {
    56                 this.dnumber2 = event.target.value
    57                 this.$emit('num2change',this.dnumber2)
    58             }
    59         }
    60     }
    61     const app = new Vue ({
    62         el: '#app',
    63         data: {
    64             num1: 1,
    65             num2: 2
    66         },
    67         components: {
    68                 cpn
    69         },
    70         methods: {
    71             numchange1 (value) {
    72                 this.num1 = parseInt(value)
    73             },
    74             numchange2 (value) {
    75                 this.num2 = parseInt(value)
    76             }
    77         }
    78     })
    79 </script>
    不积跬步无以至千里
  • 相关阅读:
    兼容ie6的mvvm框架--san
    Parsing error: The keyword 'export' is reserved && error Parsing error: Unexpected token <
    Call to undefined function openssl_decrypt()
    css 陌生属性
    获取url
    relative 和 absolute
    SSL certificate problem: unable to get local issuer certificate 的解决方法
    使用wamp扩展php时出现服务未启动的解决方法
    php判断是不是移动设备
    js:不是空字符串的空字符串引起的bug
  • 原文地址:https://www.cnblogs.com/lyt0207/p/11906362.html
Copyright © 2011-2022 走看看