Vue兄弟传值,父子通信,获取原生内容以及axios

事件总线的方式兄弟传值

/* 事件总线的方式 */

 在构造函数Vue的原型身上添加一个$bus属性 属性的值是Vue的实例化对象

/* 事件总线事件不局限于兄弟组件传值

   总的特征 先监听自定义事件 再发送自定义事件

   频繁使用 会显得浪费性能 */

main.js文件

Vue.prototype.$bus=new Vue();

childA

<h1 @click="send">我是childA</h1>

methods:{

      /* 利用事件总线的方式实现兄弟传值 */

        send(){

()里面代表注册事件,传过去的值

            this.$bus.$emit('childV','成功实现兄弟传值')

        }

    }

childB

<h2>ChildB:{{childVStr}}</h2>

    data:function(){

        return {

            childVStr:'我是弟弟'

        }

    },

    created(){

兄弟组件通信 需要使用$on方法 值用回调函数接收

        this.$bus.$on('childV',v=>{

               this.childVStr=v;

           })

    }

利用ref 获取原生dom 

/* $refs方法操作于原生DOM可以获取原生DOM元素 */

/* 使用this.$children也可以获取子组件的属性和方法 */

<h2 ref="haha">{{ msg }}</h2>

<button @click="fn">获取原生dom,修改dom内容,获取最新dom内容</button>

fn() {

      this.msg = "成功获取原生DOM内容";

this.$nextTick() 及时更新数据,直接log出来的是原来的值

      this.$nextTick(() => {

        console.log(this.$refs.haha.innerHTML);

      });

    }

父子通信(父传子,子改父)

父组件

<ChildB :iu.sync="iu" />

  iu: { name: "我是父组件的人", },

子组件

<h2 @click="change">{{iu}}</h2>

使用props接受父组件iu.sync传过来的值

 props:{

接受值为object属性, required:true 表示必传属性,如果不传会报错

        iu:{

                type:Object,

                required:true

            }

    },

 methods:{

想要再修改父组件的值,可以使用$emit('update:(sync过来的值)',{})

        change(){

            this.$emit('update:cc',{name:'巩宇来了'})

        }

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容