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 相关文章推荐
javascript与CSS复习(三)
Jun 29 Javascript
封装的原生javascript弹出层代码
Sep 24 Javascript
Javascript学习笔记二 之 变量
Dec 15 Javascript
JS计算网页停留时间代码
Apr 28 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
纯js代码实现简单计算器
Dec 02 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
JS实现的缓冲运动效果示例
Apr 30 Javascript
vue router+vuex实现首页登录验证判断逻辑
May 17 Javascript
JavaScript实现邮箱后缀提示功能的示例代码
Dec 13 Javascript
Javascript读写cookie的实例源码
Mar 16 Javascript
vue下拉刷新组件的开发及slot的使用详解
Dec 23 Vue.js
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处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
zend框架实现支持sql server的操作方法
2016/12/08 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
JSON相关知识汇总
2015/07/03 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
详解Vue2 添加对scss的支持
2019/01/02 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
2019/04/28 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
利用Python脚本在Nginx和uwsgi上部署MoinMoin的教程
2015/05/05 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python函数的周期性执行实现方法
2016/08/13 Python
python实现内存监控系统
2021/03/07 Python
PyQt4 treewidget 选择改变颜色,并设置可编辑的方法
2019/06/17 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
Python中的整除和取模实例
2020/06/03 Python
CSS3,线性渐变(linear-gradient)的使用总结
2017/01/09 HTML / CSS
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
2018/09/13 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
构造方法和其他方法的区别?怎么调用父类的构造方法
2013/09/22 面试题
大学生村官任职感言
2014/01/09 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
2014年质量管理工作总结
2014/12/01 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
小学英语教师研修感悟
2015/11/18 职场文书