问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue 子组件向父组件传值方法

发布网友 发布时间:2022-04-24 04:39

我来回答

2个回答

懂视网 时间:2022-04-20 02:45

问题:当父组件传值给子组件echarts时,发现子组件获取的props为空,刚开始以为是钩子函数放错了地方,后来发现从mounted和created都不行。当在父组件data定义传递的数据的时候子组件显示正常

原因:后来经过排查,此处省略N字,发现echarts是在渲染的时候就传递数据

解决方案:在父组件定义一个flag,当数据获得的之后再进行子组件的渲染

//父组件
 <p class="chart-wrapper">
 <pie-chart v-if="flag" :pie-data="piedata"></pie-chart>
 </p> ...
 export default {
 name: 'device',
 data() { return { 
 flag:false,
 piedata:{}, ...
 },
 created(){
 this.init()
 },
 methods:{
 init(){ 
 axios.get('/static/mock/status/pie.json').then(this.getInfoSucc)
 }, 
 getInfoSucc(res){
 res = res.data; if(res.code ==0){
  const values = res.values; 
  this.piedata = values.piedata; 
  this.flag = true 
 }
 }
//子组件<template>
 <p :class="className" :style="{height:height,width:width}"></p></template><script>import echarts from 'echarts'require('echarts/theme/macarons') // echarts themeimport { debounce } from '@/utils'export default {
 props: {
 pieData: {
 type: Object
 },
 msg: {
 type:Number
 },
 className: {
 type: String, default: 'chart'
 },
 width: {
 type: String, default: '100%'
 },
 height: {
 type: String, default: '300px'
 }
 },
 data() { return {
 chart: null
 }
 }, // watch: {
 // piedata: {
 // deep: true,
 // handler(val) {
 // console.log(val)
 // this.setOptions(val)
 // }
 // }
 // },
 mounted() { 
 console.log("pieData:"+JSON.stringify(this.pieData)) this.initChart() this.__resizeHanlder = debounce(() => { if (this.chart) { this.chart.resize()
 }
 }, 100)
 window.addEventListener('resize', this.__resizeHanlder) 
 },
 beforeDestroy() { if (!this.chart) { return
 }
 window.removeEventListener('resize', this.__resizeHanlder) this.chart.dispose() this.chart = null
 },
 methods: {
 setOptions({ text, arrtype, arrdata } = {}) { 
 this.chart.setOption({
 title: {
  text: text
 },
 tooltip: {
  trigger: 'item',
  formatter: '{a} <br/>{b} : {c} ({d}%)'
 },
 legend: {
  left: 'center',
  bottom: '10',
  data: arrtype
 },
 calculable: true,
 series: [
  {
  name: '',
  type: 'pie',
  roseType: 'radius',
  radius: [15, 95],
  center: ['50%', '42%'],
  data: arrdata,
  animationEasing: 'cubicInOut',
  animationDuration: 2600
  }
 ]
 })
 },
 initChart() { this.chart = echarts.init(this.$el, 'macarons') this.setOptions(this.pieData); 
 }
 }
}</script>

然后子组件就能正常显示了
这里写图片描述

本文讲解了vue中父组件向子组件echarts传值问题 ,更多相关内容请关注Gxl网。

热心网友 时间:2022-04-19 23:53

子组件注册触发事件,父组件注册
触发子组件事件后的方法写在method里面
父组件这么写
<component-a
v-on:child-say="listenToMyBoy"></component-a>
<p>Do
you
like
me?
{{childWords}}</p>
methods:
{
listenToMyBoy:
function
(somedata){
this.childWords
=
somedata
}
}
子组件component-a这么写
<button
v-on:click="onClickMe">like!</button>
methods:
{
onClickMe:
function(){
this.$emit('child-say',this.somedata);
}
}
以上这篇vue
子组件向父组件传值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:vue父组件向子组件动态传值的两种方法浅谈Vue父子组件和非父子组件传值问题Vue中父组件向子组件通信的方法vue2.0
父组件给子组件传递数据的方法
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
ef英语哪个好 EF英孚英语培训怎么样? 英孚英语好不好 EF英孚教育到底好不好 大佬们,麦芒7和荣耀10那个值得入手?2500以下的机子还有啥好推荐的么... 介绍几款2500元以前的手机 像素一定要高 其他的不做要求 近期想入手一部安卓手机,价格2200到2500左右…买HTC desire Z还是 三星... 笔记本忘记开机密码怎么办急死了 笔记本电脑屏幕开机锁忘记密码 怎么办?急死了 华硕笔记本电脑开机密码忘记了怎样找回?系统是Windows 7旗舰版... vue中父组件向子组件传递后台传送过来的数据,怎么才能使页面只加载子... vue中父组件调用子组件,当鼠标移开子组件时候怎么做到子组件所在页面... vue中父组件的slot在什么this属性中可以获取 vue中,父组件可以向子组件传递一个组件吗 Vue中到底是什么是父组件,什么是子组件 怎样区分骨关节炎、风湿性关节炎、类风湿关节炎? &gt;风湿性关节炎与类风湿关节炎有什么区别 风湿和类风湿痛风有什么区别? 请问各位类风湿和风湿有什么区别? 风湿和类风湿有哪些区别呢?怎么分辨? 类风湿与风湿的区别是什么? 风湿性关节炎和类风湿关节炎,哪个更严重? 类风湿关节炎和风湿性关节炎有什么区别 类风湿和风湿有什么区别? 在管理系统中接入高德的sdk复杂吗 类风湿关节炎和风湿性关节炎相比,是不是一回事? 渠道sdk对接到底是怎么个流程? 怎么区分类风湿与风湿? Android工程打包成apk后如何再接入sdk并能实现sdk中的接口 如何快速高效的接入移动第三方SDK-android100学习网 vue父传孙子可以用两次props吗 VUE2 父组件怎么向子组件广播事件 broadcast还能用吗 vue中子组件使用this.$parent获取父组件的值和方法 如果有多个父组件怎... 荣耀v40自带计算器怎么恢复? 微粒贷第三方如何找到住址的 微粒贷第一次借款 没电审直接下款了 后来还会打电话来审核嘛? 微信微粒贷第一个月自动还款后,其余的款能否一次性提前还完? 微粒贷 第1次贷款还差6000还清 可以第二个次贷款10000还清第一次6000吗 微粒贷逾期4天第5天还 铁网可以圈养吗 幼儿园铁网怎么固定在墙上 铁网能屏蔽磁场吗?请高手解答一下,谢谢! 瓷砖上面怎么固定铁网网 高速公路边的铁网是用来干什么的哦? 建筑外立面铁网怎么画 粉饼下面的一层铁网是什么 抹灰尼龙网和铁网怎么区别用法,铁网附着力大点,更抗裂,但不怕返锈吗? 梦见从铁网里面钻出来 铁网能屏蔽磁场吗?请高手解答一下。谢谢! 战神3迷宫的铁网怎么爬上去