【前端】Vue组件的生命周期及其通信

news/2024/7/10 3:10:44 标签: 前端, Vue, 组件

Vue中可以通过组件的方式来完成代码的管理编写,从而提升代码质量。组件是一个可以被反复使用的,带有指定的功能视图。

组件的生命周期

  组件的生命周期分为四个阶段:create,mount,update,destroy。

解释执行次数
beforeCreatecreated创建:初始化操作1
beforeMountmounted挂载DOM树1
beforeUpdateupdated数据更新,操作或逻辑判断n
beforeDestroydestroyed清理工作1

在这里插入图片描述

组件的通信

 1.父组件发送数据到子组件

1)父组件调用子组件(传值)
2)子组件中获取父组件传来的值

在这里插入图片描述
  最终结果:
在这里插入图片描述

 2.子组件传递数据到父组件

1)在父组件中先定义一个方法,用于接收子组件通过事件发送来的数据
2)在父组件模板:绑定事件处理函数
3)在子组件中触发事件,并且传递数据

在这里插入图片描述
  最终结果:
  在这里插入图片描述

 3.兄弟组件通信

借助于一个公共Vue实例对象,不同的组件可以通过该对象完成事件绑定和触发

<body>
    <div id="app">
        <!-- 4.挂载兄弟组件 必须组件“烤串”,避免大小写混合-->
        <xiong-da></xiong-da>
        <xiong-er></xiong-er>
    </div>
    
    <script src="vue.js"></script>
    
    <script>
        // 1.创建公共 Vue对象
        var bus=new Vue();
        
        // 3.创建组件 xiong-er
        Vue.component("xiong-er",{
            template:`
                <div>
                    <h4>熊二接收数据</h4>
                    <button @click="sendData">熊二后发送消息</button>
                </div>
            `,
            mounted:function(){
                bus.$on("customeEvent",function(msg){
                    console.log("熊大发来的消息:" + msg);
                })
            },
            methods:{
                sendData:function(){
                    bus.$emit("customeEvent2","熊大,等等我");      //触发
                }
            }
        })
        
        // 2.创建组件 xiong-da
        Vue.component("xiong-da",{
            template:`
                <div>
                    <h4>熊大发数据</h4>
                    <button @click="setData">发送</button>
                </div>
            `,
            methods:{
                setData:function(){
                    // 发送事件
                    bus.$emit("customeEvent","光头强又来偷木头了")      
                }
            },
            mounted:function(){
                // 绑定事件
                bus.$on("customeEvent2",function(msg){     
                    console.log("熊二发来的消息:"+msg);
                })
            }
        })
        // 4.创建Vue
        new Vue({el:"#app"});
    </script>
</body>

  最终结果:
在这里插入图片描述


http://www.niftyadmin.cn/n/1659620.html

相关文章

Vue+iview---导出Excel功能的实现

背景 订餐系统前端使用的是vue框架&#xff0c;基于iview组件&#xff0c;对于一些查询性的数据具有导出Excel的功能。 方法介绍 1.整体介绍 2.正常导出功能&#xff08;没有超过12位的数字&#xff09; 2.1 导出按钮添加方法 <Buttontype"primary"click"e…

Vue+iview---分页功能的实现

背景 订单系统前端使用vue框架&#xff0c;基于iview组件。当显示到表格的数据过多时&#xff0c;会进行分页处理。当然&#xff0c;分页有真分页和假分页&#xff0c;本次我们采用的是假分页。 方法介绍 1.整体介绍 2.基本表格分页 2.1 查询按钮绑定方法 <Buttontype&quo…

Vue+iview---计算总金额功能的实现

背景 订餐系统前端使用的是vue框架&#xff0c;基于iview组件&#xff0c;因为是订单系统&#xff0c;计算总金额是一个不可缺少的功能。 方法介绍 1.显示效果 总金额是由表格中所有的总金额加起来得到的。 2.总体代码展示 2.1 绑定数据的代码 <div style"margin-top…

前端框架面试题

Vue面试题 node你了解吗&#xff1f; Node 是一个让 JavaScript 运行在服务端的开发平台&#xff0c;它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。实质是对Chrome V8引擎进行了封装&#xff0c;用于方便地搭建响应速度快、易于扩展的网络…

Vue+iview---从后端获取数据并且渲染到表格上

背景 订餐系统前端使用的是vue框架&#xff0c;基于iview组件&#xff0c;前后端分离&#xff0c;所以需要从后端获取表格中的数据并且渲染到表格上。 方法介绍 1.整体介绍 2.方法介绍 2.1 时间绑定 请选择时间段&#xff1a;<DatePickertype"date"placeholder&q…

前端网络部分面试题

1.http状态码有那些&#xff1f;分别代表是什么意思&#xff1f; 1**信息&#xff0c;服务器收到请求&#xff0c;需要请求者继续执行操作 2**成功&#xff0c;操作被成功接收并处理 3**重定向&#xff0c;需要进一步的操作以完成请求 4**客户端错误&#xff0c;请求包含语…

原生js获取元素的各种位置(大全)

加给元素&#xff1a; offsetLeft &#xff08;距离定位父级的距离&#xff09;offsetTop &#xff08;距离定位父级的距离&#xff09;offsetWidth &#xff08;可视宽度&#xff09;offsetHeight &#xff08;可视高度&#xff09;clientLeft &#xff08;左边框宽度&#x…

iview表格内容居中

一般的iview的表格的样式   表格内容都是居左显示的&#xff0c;如果表格的内容很多的话&#xff0c;如下&#xff1a;   个人觉得有点丑&#xff0c;所以在之前代码的基础上&#xff0c;需要加一些代码&#xff1a; columns:[{title:"食物详情",key:"foo…