• Vue组件父子间通信01


    子组件传递数据 用户已经登录

    父组件接收数据 并显示列表,未登录不显示列表

    /*
    有两个组件,分别是main-component,header-component.
    main-component是由header-component和一个列表(有5条数据 [100,200,300,400,500]),
    header-component是由一个h1的标签:'这是页头',有一个数据isUserLogin:true

    在渲染main-component时候,读取header-component在挂载完毕之后通过事件传递来的数据(isUserLogin),根据该数据的真假来决定列表是否显示.

    <child-component @myEvent="recvMsg">
    </child-component>

    this.$emit('myEvent',myPhone)
    */

    <!doctype html>
    <html>
     <head>
      <meta charset="UTF-8">
      <title>子与父通信</title>
        <script src="js/vue.js"></script>
     </head>
     <body>
      <div id="container">
            <p>{{msg}}</p>
            <main-component></main-component>
        </div>
        <script>
        
    //创建父组件
            Vue.component("main-component",{
                data:function(){
                    return{
                        myList:[1,2,3,4,5],
                        isUserLogin:true
                    }
                },
                methods:{
                    recvMsg:function(msg){
                        this.isUserLogin = msg;
                    }
                },
                template:`
                <div>
                    <header-component @checkUserLogin="recvMsg"></header-component>
                    <ul v-if="isUserLogin">
                        <li v-for="tmp in myList">{{tmp}}</li>
                    </ul>
                </div>`
            })
            //创建子组件
            Vue.component("header-component",{
            //data属性中保存用户已经登录
                data:function(){
                    return{
                        isLogin:false
                    }
                },
                //通过$emit在挂载完成后把用户已经登录的值发传递给父组件
                mounted:function(){
                        this.$emit("checkUserLogin",this.isLogin);
                },
                template:`
                    <div>
                        <h1>这是页头</h1>
                    </div>
                `
            })
    //    new一个vue实例
            new Vue({
                el:"#container",
                data:{
                    msg:"Hello VueJs"
                }
            })
        </script>
     </body>
    </html>
  • 相关阅读:
    YaCy is a free search engine
    html css js dom树到底是什么关系
    清华的搜索课程
    Gentle中的O/R映射Attributes
    PHP headers_sent() 函数
    阿里云服务器怎么设置能让网站发邮件
    关于PHP 开启zlib gzip配置
    thinkphp无法加载控制器:Admin
    阿里云邮件服务器怎么设置才能在QQ邮箱访问,互发邮件?
    linux下配置apachenutch 笨笨熊
  • 原文地址:https://www.cnblogs.com/wangruifang/p/7771812.html
Copyright © 2020-2023  润新知