比如说要实现一个饼状图,

我们需要完成的工作是:

1.子组件负责饼状图所有功能的实现

2.父组件负责使用这个功能就可以了

可以看出,这个饼状图的实现主要是在子组件中,那我们先从子组件说起:

子组件的工作:

完成饼状图的布局,实现饼状图该有的功能,就相当于一个被封装好的函数,什么都有了,就差给它传入实参调用就可以了

props方法拿到父组件给的数据,并用这些数据真正的实现某些功能(拿到了实参,并使用实参)

<template><div></div>
<template>
<script>
export default {
// 使用props方法从父组件拿到数据
  props: {childNeed: {type: String,dafault: '父组件未传数据时的默认值'}}data() {return {realData: '子组件在自己页面要使用的数据'}},created() {// 页面刚加载进来时,将从父组件拿到的数据赋给子组件中自己定义的数据,避免从父组件直接拿到数据后子组件进行操作导致出错this.realData = thia.childNeedconsole.log(this.realData, '子组件可真正用于页面操作的数据')}
}
</script>

父组件的工作:

调用这个子组件,并将子组件所用的数据传给它,就相当于调用了封装好的函数,并且给它传入了实参,这样这个组件就可以被展示在页面上了

调用子组件,并传递数据给子组件(调用封装好的函数,并将实参传入)

<template> <child :childNeed='parentGive'></child><template><script>// 引入子组件import child from './child.vue'export default {  components: {child},  data() {  return {  parentGive: '父组件将要传给子组件的数据'}}}</script>

上述这样就使用props方法成功将父组件给予的数据传递给了子组件,子组件就可以使用这些数据了。

但是还有另一种情况就是父组件把数据给予了子组件,但是子组件不仅使用了这些数据,并且在某种情况下改变了这些数据,它就需要告诉父组件,我改变了你给我的这些数据,你在页面上不能显示原来的,得显示我改变后的这些新数据,这种情况下该怎么办呢?

使用什么方法把子组件这些新的数据告知父组件呢?这里就介绍下emit()方法的使用:

<template><div></div>
<template>
<script>
export default {
// 使用props方法从父组件拿到数据
  props: {childNeed: {type: String,dafault: '父组件未传数据时的默认值'}}data() {return {realData: '子组件在自己页面要使用的数据'}},created() {// 页面刚加载进来时,将从父组件拿到的数据赋给子组件中自己定义的数据,避免从父组件直接拿到数据后子组件进行操作导致出错this.realData = thia.childNeedconsole.log(this.realData, '子组件可真正用于页面操作的数据')  this.realData = '11111' // 子组件拿到了真正的数据并改变了这个数据   // 使用emit方法将改变后的数据再传递给父组件,父组件在页面上更新数据  this.$emit('noticParent', { noticData: this.realData})}
}
</script>

父组件拿到更新后的数据,并重新渲染

<template><child :childNeed='parentGive' @noticParent="parentReceive"></child>
<template>
<script>
// 引入子组件
import child from './child.vue'
export default {components: {child},data() {return {parentGive: '父组件将要传给子组件的数据'
}
},methods: {  parentReceive(msg) {  console.log(msg.noticData, '从子组件收到的数据')  }}
}
</script>

这样就解决了子组件数据发生变化,父组件重新渲染的问题。

转载于:https://www.cnblogs.com/buerBlog/p/8568646.html

理解vue中的父组件,子组件相关推荐

  1. vue中无法监听到子组件的事件的问题

    是因为在@getList 这样的写法,会在HTML里自动转换为getlist, 因此要想实现这种驼峰,需用下滑线连接,既get_list 转载于:https://www.cnblogs.com/alw ...

  2. Vue.js父与子组件之间传参 父向子组件传参   例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为ht

    Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对 ...

  3. 理解vue中的组件(二)

    上节说到组件https://segmentfault.com/a/1190000009236700,这一节继续来学习组件: 原文博客地址,欢迎学习交流:点击预览 从github上获取本文代码:示例代码 ...

  4. 如何在vue页面中引入其他的子组件?(局部引入/全局引入)

    在页面中引入子组件分为局部引入和全局引入,局部引入顾名思义就是只在当前页面引入且只在当前页面显示,全局引入即引入后在所有页面都显示. 首先我们创建两个页面Test.vue和Tset2.vue: 起始效 ...

  5. Vue中父子及非父子组件之间的通信方法

    Vue中父子及非父子组件之间的通信方法 父子组件之间的通信方法 父级->子级通信 (依赖单向数据绑定+props实现) Vue.component('Father', { //注册了含有data ...

  6. react 子传参父_React 子组件给父组件传值、整个组件、方法

    一.准备工作 1.定义一个父组件,名字为Parent /src/component/Parent.js import React, {Component} from 'react' export de ...

  7. 前端学习(2487):在VUE中使用element-ui的el-select组件时出现该报错

    一. 报错场景 在VUE中使用element-ui的el-select组件时出现该报错 [Vue warn]: Missing required prop: "value" 1 二 ...

  8. 深入理解vue中的slot与slot-scope (简单易懂)

    走在前端的大道上 插槽,也就是slot,是组件的一块HTML模板,这块模板显示不显示.以及怎样显示由父组件来决定. 实际上,一个slot最核心的两个问题在这里就点出来了,是显示不显示和怎样显示. 由于 ...

  9. 理解vue中less的scoped和/deep/工作原理

    理解vue中less的scoped和/deep/工作原理 scoped /deep/ 实战 总结 scoped vue项目一般是单页面.多组件,整个项目共用一个css样式表,有时候我们在写组件的过程中 ...

  10. 怎样理解vue中的slot

    插槽(Slot)是Vue提出来的一个概念,正如名字一样,插槽用于决定将所携带的内容,插入到指定的某个位置,从而使模板分块,具有模块化的特质和更大的重用性. Slot 是在组件模板中设置的用于在父组件中 ...

最新文章

  1. iOS自动布局框架-Masonry详解
  2. Quill编辑器IOS下无法获取焦点的解决方法
  3. 【SD】自定义销售订单审批状态
  4. 大学计算机基础 课程的说课,大学计算机基础资料说课稿.ppt
  5. 把angular(vue等)项目部署在局域网上
  6. 求合体电脑版_网红界宋祖儿找年轻版言承旭当男友,一张合照收割大量cp粉?!...
  7. centos7卸载mysql数据库,CentOS7 安装卸载MySQL
  8. 【Python学习】 caffe-master 之 mnist 详解
  9. rabbitmq添加自启动 centos7环境
  10. win11怎么回退原系统 Windows11回退的步骤方法
  11. 迭代器、生成器、递归、二分法
  12. python之路-操作系统
  13. C语言substr函数用法,自己实现substr函数——C语言
  14. 十年Smartbi项目经理:BI应用在银行业的发展历程和展望
  15. golang-querymoredeteleupdatedelete
  16. 数据分析师必备技能之埋点
  17. 京东秋招java面试_最新秋招,京东技术中台Java开发面经,有想去面试的可以来看下...
  18. 晚上如何配置ubuntu,保护眼睛?黑(暗)色主题
  19. Hibernate----初识
  20. 十九、 指派问题 - 匈牙利法 (0-1 整数规划)

热门文章

  1. OTcl与C++,NS2是如何识别并调用执行协议的 转自百思论坛
  2. 【CV】计算机视觉入坑必备
  3. 【KDD20】TAdaNet: 用于图增强元学习的任务自适应网络
  4. 【GNN】图表示学习Graph Embedding综述
  5. 重磅!双一流高校学位点有变化!教育部公布2019年增列、撤销的学位点
  6. 58 页 PPT 揭示图神经网络研究最新进展
  7. 2019118_四个化学数据分析(1)
  8. 深度学习2.0-30.卷积神经网络之池化与采样
  9. 一本书,给你把卷积神经网络(CNN)安排得明明白白
  10. 人工神经网络到底能干什么?到底在干什么?