vue中子组件的methods中获取到props中的值方法


Posted in Javascript onAugust 27, 2018

父子组件通信

这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可

例如:

父组件中

<template>
  <div>
    <head-top></head-top>
    <section class="data_section">
      <header class="chart-title">数据统计</header>
      <el-row :gutter="20" class="chart-head">
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head blue-head">统计:</div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">销售数量 <span>{{number}}</span></div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">销售金额 <span>{{amount}}</span></div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">利润统计 <span>{{profits}}</span></div></el-col>
      </el-row>
    </section>
    <chart :chartData="chartData"></chart>
  </div>
</template>

<script>
  data(){
      return {
        number: null,
        amount: null,
        profits: null,
        chartData: [10,10,10]
      }
    },
</script>

子组件中

export default {
  props: ['chartData']
}

这种情况下,子组件的methods中想要取到props中的值,直接使用this.chartData即可

但是有写情况下,你的chartData里面的值并不是固定的,而是动态获取的,这种情况下,你会发现methods中是取不到你的chartData的,或者取到的一直是默认值

比如下面这个情况

父组件中

<script>
  data(){
      return {
        number: null,
        amount: null,
        profits: null,
        chartData: []
      }
    },
    mounted(){
      this.getStatistics();
    },
    methods: {
      //获取统计数据
      getStatistics(){
        console.log('获取统计数据')
        axios.post(api,{

        }).then((res) => {
          this.number = res.data.domain.list[0].number;
          this.amount = res.data.domain.list[0].amount;
          this.profits = res.data.domain.list[0].profits;
          this.chartData = [this.number,this.amount,this.profits];
        }).catch((err) => {
          console.log(err);
        })
      },
    },
</script>

此时子组件的methods中使用this.chartData会发现是不存在的(因为为空了)

这情况我是使用watch处理

解决方法如下:

使用watch

props: ['chartData'],
    data(){
      return {
        cData: []
      }
    },
    watch: {
      chartData: function(newVal,oldVal){
        this.cData = newVal; //newVal即是chartData
        this.drawChart();
      }
    },

监听chartData的值,当它由空转变时就会触发,这时候就能取到了,拿到值后要做的处理方法也需要在watch里面执行

以上这篇vue中子组件的methods中获取到props中的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript add event remove event
Apr 07 Javascript
JavaScript中的变量作用域介绍
Dec 31 Javascript
JS中字符串trim()使用示例
May 26 Javascript
初识Javascript小结
Jul 16 Javascript
微信小程序 Canvas增强组件实例详解及源码分享
Jan 04 Javascript
JS实现可切换图片的幻灯切换效果示例
May 24 Javascript
13 个npm 快速开发技巧(推荐)
Jul 04 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
JS document文档的简单操作完整示例
Jan 13 Javascript
Json实现传值到后台代码实例
Jun 30 Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 Javascript
Vue实现随机验证码功能
Dec 29 Vue.js
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 #Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 #Javascript
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 #Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
Aug 27 #Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
Aug 27 #Javascript
vue监听input标签的value值方法
Aug 27 #Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 #Javascript
You might like
PHP网上调查系统
2006/10/09 PHP
php 操作excel文件的方法小结
2009/12/31 PHP
新手学习PHP的一些基础知识分享
2011/07/27 PHP
php无限分类且支持输出树状图的详细介绍
2013/06/19 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
编写PHP脚本清除WordPress头部冗余代码的方法讲解
2016/03/01 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
PHP实现随机发放扑克牌
2020/04/21 PHP
JavaScript 入门基础知识 想学习js的朋友可以参考下
2009/12/26 Javascript
javascript闭包的理解和实例
2010/08/12 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
js读写json文件实例代码
2014/10/21 Javascript
移除AngularJS下URL中的#字符的方法
2015/06/19 Javascript
artDialog+plupload实现多文件上传
2016/07/19 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
vue使用vue-cli快速创建工程
2017/07/28 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
python中正则表达式 re.findall 用法
2018/10/23 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
python不同版本的_new_不同点总结
2020/12/09 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
初中女生自我鉴定
2013/12/19 职场文书
司机辞职报告范文
2014/01/20 职场文书
护士毕业实习感言
2014/03/05 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书