美文网首页
如何在组件之间,传数据,调用事件。

如何在组件之间,传数据,调用事件。

作者: jrg陈咪咪sunny | 来源:发表于2019-07-08 01:03 被阅读0次

Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数据传递。

首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,components 文件夹下都是子组件。

image.png
一、父组件向子组件传递数据

在 Vue 中,可以使用 props 向子组件传递数据。

子组件部分:

image

这是 header.vue 的 HTML 部分,logo 是在 data 中定义的变量。

如果需要从父组件获取 logo 的值,就需要使用 props: ['logo']

image

在 props 中添加了元素之后,就不需要在 data 中再添加变量了

父组件部分:

image

在调用组件的时候,使用 v-bind 将 logo 的值绑定为 App.vue 中定义的变量 logoMsg

image

然后就能将App.vue中 logoMsg 的值传给 header.vue 了:

image

二、子组件向父组件传递数据

子组件主要通过事件传递数据给父组件

子组件部分:

image

这是 login.vue 的 HTML 部分,当<input>的值发生变化的时候,将 username 传递给 App.vue

首先声明一个了方法 setUser,用 change 事件来调用 setUser

image

在 setUser 中,使用了 **$emit **来遍历 transferUser 事件,并返回 this.username

其中 transferUser 是一个自定义的事件,功能类似于一个中转,this.username 将通过这个事件传递给父组件

父组件部分:

image

在父组件 App.vue 中,声明了一个方法 getUser,用 transferUser 事件调用 getUser 方法,获取到从子组件传递过来的参数 username

image

getUser 方法中的参数 msg 就是从子组件传递过来的参数 username

image

三、子组件向子组件传递数据

Vue 没有直接子对子传参的方法,建议将需要传递数据的子组件,都合并为一个组件。如果一定需要子对子传参,可以先从传到父组件,再传到子组件。

为了便于开发,Vue 推出了一个状态管理工具 Vuex,可以很方便实现组件之间的参数传递

相关文章

  • 如何在组件之间,传数据,调用事件。

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据。必须使用特定的方法才能实现组件之间的数...

  • vue其他知识点简单记录

    路由: 过渡动画 组件 数据绑定 事件 方法:事件可以调用方法 子父组件传值 插槽 动态组件

  • react 父子组件之间的方法调用

    父子组件之间传值通过props、触发事件调用props的方法对父组件的state进行修改; 类似于vue中子组件通...

  • vue兄弟组件通信

    vue 兄弟组件之间的传值 一. 子传父,父传子。 二. 1、兄弟之间传递数据需要借助于事件车,通过事件车的方式传...

  • vue---子父、父子、非父子组件通信

    子组件和父组件通信 在父组件中使用子组件时自定义事件,设置该事件的回调函数 在子组件中需要传数据给父组件时调用th...

  • Vue.js组件传值

    子组件向父组件传值 在子组件页面触发事件$emit 在父组件中在组件标签中调用v-on事件监听 父组件向子组件传值...

  • Vue父子组件常用通信

    Vue开发,父子组件之间通信很常用,有传数据的,有调用方法的,有子组件操作父组件,也有父组件操作子组件,今天就简单...

  • vue.js 兄弟组件传值

    vue兄弟组件如何传值?兄弟组件如何相互操作组件里面的函数? 1、兄弟之间传递数据需要借助于事件车,通过事件车的方...

  • Vue.js组件间调用及传值 2020最新更新

    Vue.js中,对于父子组件、平级组件间的事件触发、传值等。 调用 父组件 子组件 子组件调用父组件 子组件 触发...

  • 2019-01-18 Vue学习

    父组件传数据给子组件(props),子组件传给父组件($emit("触发大的事件”,传的数据)) 插槽(slot)...

网友评论

      本文标题:如何在组件之间,传数据,调用事件。

      本文链接:https://www.haomeiwen.com/subject/xkbwhctx.html