组件传值之实时刷新

组件传值

在我们日常的开发中许多时候需要用到组件传值,个人在 vue、react、uniapp等常用框架中使用组建传值时都出现过,父子组件间传值,没能实时刷新值的变化,导致组件里的一些方法函数不能实时的调用等问题。

例:

这里用vue来举例

父组件
<template>
    <view>
       <aaa :id='id'></aaa>  
    </view>
</template>
  
<script>
  data(){
    return{
      id:19754
    }
  },
  onload(){

    console.log(''id',this.id)

  },

   method:{
        
  }
</script>


子组件
<template>
    <view>
      {{id}}
    </view>
</template>
  
<script>
  props:['id'],
  data(){},
  mounted(){
  console.log('id',this.idid)
  },
    method:{
        
    }
</script>

 
子组件不管在哪里接收父组件传的值都一样,第一次打印为空,第二次为上一次传的值
解决意见
通过watch来监听传递过来的字段
<template>
    <view>
      {{newID}}
    </view>
</template>
  
<script>
  props:['id'],
  data(){
    return{
      newId:''
    }
  },
  mounted(){
  console.log('id',this.idid)
  },
  watch:{
    id:fuction(){
      this.newID = this.id
    }  
    console.log(this.newID)
  },
    method:{
        
    }
</script>
如果子组件的方法函数需要根据父组件传值进行调用可以直接在watch中调用
为了实现Vue中封装Echarts并实现实时刷新,可以按照以下步骤进行: 1. 在Vue的组件中引入Echarts依赖: ```javascript import echarts from 'echarts' ``` 2. 在组件中创建Echarts实例并设置参数: ```javascript export default { data() { return { chartData: null, // Echarts数据 chart: null // Echarts实例 } }, mounted() { this.initChart() }, methods: { initChart() { this.chart = echarts.init(this.$refs.chart) // 创建Echarts实例 this.chart.setOption({ // 设置Echarts参数 // ... }) } } } ``` 3. 在组件中创建一个方法,用于更新Echarts数据,并在数据更新后重新渲染Echarts图表: ```javascript export default { // ... methods: { updateChartData(data) { this.chartData = data // 更新Echarts数据 this.chart.setOption({ // 重新渲染Echarts图表 // ... series: [{ data: this.chartData }] }) } } } ``` 4. 在父组件中调用子组件的方法,传递数据更新Echarts图表: ```html <template> <div> <my-chart ref="chartRef"></my-chart> <button @click="updateData">更新数据</button> </div> </template> <script> import MyChart from './MyChart.vue' export default { components: { MyChart }, methods: { updateData() { const chartRef = this.$refs.chartRef const data = [/* 新数据 */] chartRef.updateChartData(data) // 调用子组件的方法更新Echarts图表 } } } </script> ``` 这样,每当父组件中的数据更新时,调用子组件的方法更新Echarts图表,从而实现了Echarts的实时刷新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值