vue data有值,但是页面{{}} 取不到值的解决


Posted in Javascript onNovember 09, 2020

我的问题出在js引入的顺序不对,导致不能正常显示vue中的值

正确的顺序应该是:

先引入vue的js--------html代码-----最后引入自己写的js

补充知识:vue中子组件的created、mounted生命周期钩子中获取不到props中的值问题

父子组件通信

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

例如:在父组件中

<template>
 <div>
  <div :Data="Data"></div>
 </div>
</template>
<script>
 data(){
   return {
    Data: [10,20,30]
   }
  },
</script>

子组件中:

export default{
 props:{
 type:Array,
 default(){
 return []
 }
 }
}

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

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

解决办法:

这种情况我是使用watch处理

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

export default {
 props: ['Data'],
  data(){
   return {
    cData: []
   }
  },
  watch: {
   //正确给 Data 赋值的 方法
   chartData: function(newVal,oldVal){
    this.cData = newVal; //newVal即是chartData
    newVa l&& this.draw(); //newVal存在的话执行draw函数
   }
  },
  methods: {
   draw(){
    //执行其他逻辑
   }
  },

 
  mounted() {
   //在created、mounted这样的生命周期, 给 this.Data赋值会失败,错误赋值方法 
  }
 }

//总结

出现这种情况的原因, 因为父组件中要传递的 props 属性 是通过 发生ajax请求回来的, 请求的这个过程是需要时间的,但是子组件的渲染要快于ajax请求过程,所以此时 created 、 mounted 这样的只会执行一次的生命周期钩子,已经执行了,但是 props 还没有流进来(子组件),所以只能拿到默认值。

以上这篇vue data有值,但是页面{{}} 取不到值的解决就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
Javascript 跨域访问解决方案
Feb 14 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
js实现图片缓慢放大缩小效果
Aug 02 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
Aug 03 Javascript
JavaScript实现汉字转换为拼音的库文件示例
Dec 22 Javascript
基于jQuery Easyui实现登陆框界面
Jul 10 jQuery
JS简单实现父子窗口传值功能示例【未使用iframe框架】
Sep 20 Javascript
JS去掉字符串中所有的逗号
Oct 18 Javascript
security.js实现的RSA加密功能示例
Jun 06 Javascript
v-slot和slot、slot-scope之间相互替换实例
Sep 04 Javascript
vue 防止页面加载时看到花括号的解决操作
Nov 09 #Javascript
Webpack的Loader和Plugin的区别
Nov 09 #Javascript
解决vue初始化项目一直停在downloading template的问题
Nov 09 #Javascript
在VUE中使用lodash的debounce和throttle操作
Nov 09 #Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 #Javascript
详解nginx配置vue h5 history去除#号
Nov 09 #Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
Nov 09 #Javascript
You might like
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
详解Yii2 定制表单输入字段的标签和样式
2017/01/04 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
Javascript与flash交互通信基础教程
2008/08/07 Javascript
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
Javascript URI 解析介绍
2015/03/15 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JavaScript创建对象_动力节点Java学院整理
2017/06/27 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
js实现带搜索功能的下拉框
2020/01/11 Javascript
python 实时遍历日志文件
2016/04/12 Python
Python实现通过文件路径获取文件hash值的方法
2017/04/29 Python
python 禁止函数修改列表的实现方法
2017/08/03 Python
python 函数传参之传值还是传引用的分析
2017/09/07 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
2019/01/04 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
python基础教程之while循环
2019/08/14 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
高中打架检讨书
2014/02/13 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
乡镇群众路线专项整治方案
2014/11/03 职场文书
个人总结怎么写
2015/02/26 职场文书
2015年幼儿园保育员工作总结
2015/04/23 职场文书
Python源码解析之List
2021/05/21 Python
蓝牙耳机怎么连接电脑win11? Win11蓝牙耳机连接电脑的技巧
2023/01/09 数码科技