Vue2.0子父组件通信

作者: PengL | 来源:发表于2017-01-14 13:38 被阅读15428次

Vue是一个轻量级的渐进式框架,对于它的一些特性和优点在此就不做赘述,本篇文章主要来探讨一下Vue子父组件通信的问题

首先我们先搭好开发环境,我们首先得装好git和npm这两个工具(如果有不清楚的同学请自行百度哦)

环境搭建步骤:

  • 打开git ,运行 npm install --global vue-cli 这是安装vue的命令行
  • vue init webpack vue-demo 这是vue基于webpack的模板项目
  • cd vue-demo 进入vue-demo文件夹
  • npm install 安装package.json中依赖的node_modules
  • npm run dev 运行该项目
刚刚我们创建的是vue基于webpack工具的一个模板项目,对于webpack和热加载这些不熟悉的同学不必在意,我们现在不会过多关注webpack的,不过建议对vue有兴趣的同学还是去了解一下webpack,它也算是vue开发中的一个必备工具

接着我们进入Demo,首先我们可以删除掉模板项目中src/components/Hello.vue,然后在App.vue中删除对于Hello子组件的注册和使用还有一些其他无关紧要的东西,此时的App.vue应为这样
App.png
一.父组件向子组件传值

1.创建子组件,在src/components/文件夹下新建一个Child.vue
2.Child.vue的中创建props,然后创建一个名为message的属性


child.png

3.在App.vue中注册Child组件,并在template中加入child标签,标签中添加message属性并赋值


App2.png
4.保存修改的文件,查看浏览器 browser.png

5.我们依然可以对message的值进行v-bind动态绑定


App3.png

此时浏览器中

browser2.png

父组件向子组件传值成功
总结一下:

  • 子组件在props中创建一个属性,用以接收父组件传过来的值
  • 父组件中注册子组件
  • 在子组件标签中添加子组件props中创建的属性
  • 把需要传给子组件的值赋给该属性

二.子组件向父组件传值

1.在子组件中创建一个按钮,给按钮绑定一个点击事件


Child2.png

2.在响应该点击事件的函数中使用$emit来触发一个自定义事件,并传递一个参数


Child3.png
3.在父组件中的子标签中监听该自定义事件并添加一个响应该事件的处理方法
App4.png

4.保存修改的文件,在浏览器中点击按钮

browser3.png

子组件向父组件传值成功
总结一下:

  • 子组件中需要以某种方式例如点击事件的方法来触发一个自定义事件
  • 将需要传的值作为$emit的第二个参数,该值将作为实参传给响应自定义事件的方法
  • 在父组件中注册子组件并在子组件标签上绑定对自定义事件的监听
在通信中,无论是子组件向父组件传值还是父组件向子组件传值,他们都有一个共同点就是有中间介质,子向父的介质是自定义事件,父向子的介质是props中的属性。抓准这两点对于父子通信就好理解了

相关文章

  • vue组件间通信

    vue组件间通信 1.父组件向子组件传递数据--props 在vue2.0中使用props实现向子组件传递数据: ...

  • Angular5 父子组件之间的通信

    一、父组件向子组件通信 父组件: 子组件: 二、子组件向父组件通信 父组件: 子组件:

  • 组件通信

    组件通信分为几种: 父组件给子组件通信 子组件给父组件通信 兄弟组件通信 1.父组件给子组件通信 法一...

  • Vue 父子组件通信

    子组件与父组件通信 1、通过$emit实现通信 vue2.0只允许单向数据传递,我们通过出发事件来改变组件的数据,...

  • Vue组件间通信,与服务器端通信

    组件间通信 父组件与子组件通信: props down 子组件与父组件通信:events up 若父组件要想获取子...

  • ReactNative组件间的通信

    父组件向子组件通信 父组件向子组件传值 父组件向子组件传递方法 子组件向父组件通信 子组件向父组件传值 子组件向父...

  • 组件间通信

    组件间通信 父组件向子组件通信,子组件之间通信 父组件以自身的state作为作为子组件的props;父组件调用se...

  • Vue中父子组件通信

    父组件向子组件通信 Pass Props 子组件向父组件通信 Emit Events

  • vue2.0中组件之间的信息传递

    在vue2.0中父组件给子组件传递信息父组件 子组件 总结 父组件导入子组件 父组件中注册子组件 把需要传递给子组...

  • React的组件通信

    组件之间进行通信的情况: 父组件向子组件通信 子组件向父组件通信 兄弟组件之间通信 发布者-订阅者模式 一、父组件...

网友评论

  • 3879a7df9327:[Vue warn]: Unknown custom element: <child> - did you register the component correctly? For recursive components, make sure to provide the "name" option.这个问题怎么解决呢
    tenderne_2710:@南风one 他的示范代码中没有把子组件挂载到父组件上 需要把子组件挂载上去
  • agrass:可以。看了你两篇文章。都很简单,易懂。
  • 10500cc3b51f:为什么我报错

    [Vue warn]: Unknown custom element: <child> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
    tenderne_2710:@_凯_5c2d 他的示范代码中没有把子组件挂载到父组件上
    PengL:@_凯_5c2d 根据报错信息,应该是你没有给子组件添加name属性或者名称之类的错误
  • 扬沙沙:这就是为什么可以模块化的途径了,
  • 樱速:按照lz的步骤来一上来就报错 Cannot GET / 了,怎么解决啊
    樱速:@PengL e...已经解决了,是因为一开始命令行安装的时候装了一个代码检测的插件,然后我在写路由的时候少打了一个空格…
    PengL:@樱速 由于时间关系,可能你用vue-cli生成的vue模版结构变了,原模原样的做法会出问题。
  • 小小的帅气:棒棒的,总结的很好学起来很快,,
  • JwEiam:很棒,写的很用心,每个地方都有代码,一看就清晰明了
  • c82fc4184eb6:写的很详细很棒,能否写一篇使用vuex通信的文章
  • just磊哥:讲的很详细,不错!
  • f845c88c55fa:好文,说的很清楚
  • lrong_xc:总结的很好,喜欢。
  • 豆大侠:现在的vue组件通信做的还不错,不论是通过事件中心还是vuex都可以做到不错的兄弟组件之间的通信
  • b98314bba338:很喜欢vue,说的也很清晰
  • 7a4ffbb0d2c7:喜欢不错

本文标题:Vue2.0子父组件通信

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