zoukankan      html  css  js  c++  java
  • 单向数据流

    在上一篇的父子组件中,我们知道,当我们使用动态props将父组件的数据传递到子组件的时候,如果父组件的数据变化,子组件的数据会随之变化。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>vue</title>
        <script src="bower_components/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="box">
            <aaa></aaa>
        </div>
    
        <template id="aaa">
            <p @click="changeText">我是父组件</p>
            <bbb  :c-mess="pmsg"></bbb>
        </template>
        <script>
            var vm=new Vue({
                el:'#box',
                data:{
                    a:'aaa'
                },
                components:{
                    'aaa':{
                        data(){
                            return {
                               'pmsg':'动态props',
                            }
                        },
                        template:'#aaa',
                        methods:{
                            changeText(){
                                this.pmsg = '数据流'
                            }
                        },
                        components:{
                            'bbb':{
                                 props:['c-mess'],
                                template: `
                                    <div>
                                        <div>我是子组件 --- {{cMess}}</div>
                                    <div>
                                `,
                            }
                        }
                    }
                }
            });
        </script>
    </body>
    </html>

      

    父组件数据变化时,子组件数据会相应变化;而子组件数据变化时,父组件数据不变

    我们知道,子组件的值是通过emit主动发送到父组件的,需要事件驱动,如果子组件的数据发生改变时,没有事件驱动,父组件的数据并不能随之更新。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>vue</title>
        <script src="bower_components/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="box">
            <aaa></aaa>
        </div>
    
        <template id="aaa">
            <div>
                <span>父组件数据</span>
                <input v-model="msg">
            </div>
            <p>{{msg}}</p>
            <bbb :child-msg="msg"></bbb>
        </template>
        <script>
            var vm=new Vue({
                el:'#box',
                components:{
                    'aaa':{
                         data(){
                            return {
                            'msg':'match'
                            }
                        },
                        template:'#aaa',
                        components:{
                            'bbb':{
                                props:['childMsg'],
                                template: `
                                     <div>
                                        <span>子组件数据</span>
                                        <input v-model="childMsg">
                                    </div>
                                    <p>{{childMsg}}</p>
                                `,
                            }
                        }
                    }
                }
            });
        </script>
    </body>
    </html>

         

  • 相关阅读:
    团队冲刺-1
    最优惠购买书籍
    gogoing软件NABCD
    二维数组首尾相连
    首尾相连一维数组的最大子数组和
    二维数组返回最大子矩阵之和
    石家庄铁道大学基础教学楼电梯使用调查
    子数组最大值求和
    返回一个整数数组中最大子数组的和-课堂训练(子数组为连续)
    软件工程概论-四则运算
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/9800979.html
Copyright © 2011-2022 走看看