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>

         

  • 相关阅读:
    python从zk获取连接并测试dubbo接口
    利用python脚本和telnet调试dubbo接口
    python制造有序中文json串的方法
    unittest用pycharm执行报错
    安装jenkins时无法解析主机:www.jenkins.io
    mui 左右滑动效果
    mui 日期控件的用法
    sql 不同where下的统计
    使用EF关于分页查询时遇到的一点疑问
    css按钮定位在div底部
  • 原文地址:https://www.cnblogs.com/yuyujuan/p/9800979.html
Copyright © 2011-2022 走看看