Vue兄弟组件之间的通信:

这篇具有很好参考价值的文章主要介绍了Vue兄弟组件之间的通信:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思路:

通过中间人父组件进行通信;

子组件先传给父组件,然后父组件再传给另一个子组件; 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../lib/vue.js"></script>
    <style>
        div img{
            width: 100px;
        }
        .active{
            width: 300px;
            min-height: 200px;
            background-color: yellow;
            position: fixed;
            right: 50px;
            top: 100px;
            border: 1px solid blue;
        }
    </style>
</head>
<body>
    <div id="box">
        <button @click="handleAjax">ajax</button>

        <film-item v-for="item in datalist" :key="item.filmId" :mydata="item" @event="handleEvent"></film-item>
        
        <film-detail :film-data="filmData"></film-detail>
    </div>
    <script>
        Vue.component("filmItem",{
            props:['mydata'],
            template:`
            <div>
                <img :src="mydata.poster">
                {{mydata.name}}
                <button @click="handleClick">详情</button>
            </div>
            `,
            methods:{
                handleClick(){
                    // console.log(this.mydata.synopsis)
                    this.$emit("event",this.mydata.synopsis)
                }
            }
        })

        Vue.component("filmDetail",{
            props:["filmData"],
            template:`
                <div class="active">
                    {{filmData}}
                </div>
            `
        })

        new Vue({
            el:"#box",
            data:{
                datalist:[],
                filmData:""
            },
            methods:{
                handleAjax(){
                    fetch("test.json").then(res=>res.json())
                    .then(res=>{
                        console.log(res.data.films)
                        this.datalist=res.data.films
                    })
                },
                //子传父自定义事件
                handleEvent(data){
                    console.log("父组件定义",data)
                    this.filmData=data
                }
            }
        })
    </script>
</body>
</html>

结果:

Vue兄弟组件之间的通信: 

注意:

console.log(res.json())的结果是promise对象;

图示:

Vue兄弟组件之间的通信:

要通过res接收res.json()结果才是data数据;

Vue兄弟组件之间的通信:

 结果:

Vue兄弟组件之间的通信:

 文章来源地址https://www.toymoban.com/news/detail-505530.html

子组件传给父组件的data,是一个临时变量,如果父组件想用,就要定义一个状态来接收它:例如下图的:this.filmData = data 

 图示:

Vue兄弟组件之间的通信:

 

自定义属性,也不能写成驼峰写法,可以写成“-”的形式:

Vue兄弟组件之间的通信:

 

到了这里,关于Vue兄弟组件之间的通信:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue3 常用的组件互相通信(父子、兄弟、爷孙、任意组件)

    目录 前言:目前组件通信方法有好多种,我这挑选一部分来讲 1、父传子 2、子传父 3、兄弟之间通信 3.1、父组件充当中间件 3.2、全局事件总线—EventBus 4、爷孙之间通信 5、任意组件、全局 方案 父传子 子传父 props / emits props emits v-model / emits v-model emits ref / emits ref emits provi

    2024年02月15日
    浏览(45)
  • Vue中 组件间的通信

    引入 父组件==子组件 子组件==父组件 全局事件总线 消息订阅与发布 你知道Vue中组件之间应该如何进行通信吗?这里面就涉及到了多个关系了,父子之间互传、兄弟之间互传、子孙之间互传,甚至是任意的组件之间传递...... 是不是感觉有点头皮发麻。没关系,本文将带领大家

    2024年02月13日
    浏览(45)
  • Vue3组件间的通信方式

    目录  1.props父向子组件通信 2.自定义事件 子向父组件通信 3.全局事件总线 4.v-model组件通信(父子组件数据同步) 绑定单个数据同步  绑定多个数据同步  5.useAttrs组件通信  6.ref与$parent ref获取子组件实例对象  $parent获取父组件实例对象  7.provide-inject 可以实现隔辈传输 8.

    2024年02月17日
    浏览(47)
  • Vue组件间通信方式超详细(父传子、父传后代、子传父、后代传父、兄弟组件传值)

    父组件:父组件引入子组件时,通过 child :parentValue = \\\"parentValue\\\"/child 子组件传值。 备注:这种方式父传值很方便,但是传递给后代组件不推荐(父-子-孙),且这种方式父组件不能直接修改父组件传过来的数据。 子组件:子组件通过props即 props:{ parentValue:{ type:String, default:\\\"\\\" } } 来

    2024年02月05日
    浏览(40)
  • vue组件之间通信方式

    一、全局事件总线 范围 :任意组件间 步骤 :1、创建事件总线 第一种方式:通过自定义事件总线方式 局部引用 第二种方式:通过原型绑定 main.js 局部引用 解绑事件 二、props和$emit 范围 :父子组件间 父组件 子组件 三、Vuex(状态管理) 范围 :多个组件之间共享状态,可以

    2024年03月10日
    浏览(43)
  • vue 组件之间通信的方式

    1.父向子版  父组件设置自定义属性 子组件props接收 2.子向父版 父组件设置自定义方法并绑定接收的方法 子组件触发方法  3.全局事件总线   4.Vuex 用这个的话首先要装包或者创建工程的时候选择这个选项手脚架会给你装好 5.路由 抽象一点说路由也算通信方式的一种吧 这种

    2024年01月18日
    浏览(39)
  • 浅谈Vue组件之间的通信

    父子组件通信 : 父组件向子组件传递数据 :可以通过 props 属性向子组件传递数据。 子组件向父组件传递数据 :可以通过 $emit 方法触发一个自定义事件,并在父组件中监听这个事件。 在父组件中: 兄弟组件通信 : 可以使用共同的父组件作为中介,父组件通过 props 向子组

    2024年02月22日
    浏览(41)
  • Vue3 组件之间的通信

    经过前面几章的阅读,相信开发者已经可以搭建一个基础的 Vue 3 项目了! 但实际业务开发过程中,还会遇到一些组件之间的通信问题,父子组件通信、兄弟组件通信、爷孙组件通信,还有一些全局通信的场景。 这一章就按使用场景来划分对应的章节吧,在什么场景下遇到问

    2023年04月08日
    浏览(44)
  • vue组件之间的通信都有哪些?

    vue组件之间的通信都有哪些? 父子组件通信: Props:父组件通过props将数据传递给子组件,子组件通过props接收父组件传递的数据。 Events:子组件通过$emit触发事件,并将数据传递给父组件,父组件通过监听子组件的事件来接收数据。 兄弟组件通信: 共同的父组件作为中介:

    2024年02月06日
    浏览(49)
  • 07-Vue技术栈之(组件之间的通信方式)

    前言: 组件之间通信的方式有很多种,比如 props 、 自定义事件 、 全局事件总线 、 消息订阅与发布 、 父链与子组件索引 、 插槽 、 Vuex 等都可以实现组件之间的通信。在这里我将介绍以下三种通信方式。 它是一种组件间通信的方式,适用于: 子组件 === 父组件 使用场景

    2024年02月07日
    浏览(94)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包