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 相关文章推荐
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
JavaScript格式化数字的函数代码
Nov 30 Javascript
js jq 单击和双击区分示例介绍
Nov 05 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
浅谈jQuery的offset()方法及示例分享
Jul 17 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
基于javascript实现简单的抽奖系统
Apr 15 Javascript
JS实现根据密码长度显示安全条功能
Mar 08 Javascript
React 路由懒加载的几种实现方案
Oct 23 Javascript
解决vue v-for src 图片路径问题 404
Nov 12 Javascript
js中实现继承的五种方法
Jan 25 Javascript
使用Ajax实现无刷新上传文件
Apr 12 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
索尼ICF-SW100收音机评测
2021/03/02 无线电
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php启用zlib压缩文件的配置方法
2013/06/12 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
extjs DataReader、JsonReader、XmlReader的构造方法
2009/11/07 Javascript
jquery 操作表格实现代码(多种操作打包)
2011/03/20 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
JS判断不能为空实例代码
2013/11/26 Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
2017/12/07 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
[02:54]DOTA2英雄基础教程 暗影牧师戴泽
2013/12/05 DOTA
[04:42]2015国际邀请赛CDEC战队晋级之路
2015/08/13 DOTA
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
可持续木材、生态和铝制太阳镜:Proof Eyewear
2019/07/24 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
大学生学业生涯规划
2014/01/05 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
学生吸烟检讨书
2014/09/14 职场文书
行政文员岗位职责
2015/02/04 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
入党积极分子党支部意见
2015/06/02 职场文书
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS