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 相关文章推荐
js DOM的学习笔记
Dec 22 Javascript
创建js对象和js类的方法汇总
Dec 24 Javascript
理解JavaScript中Promise的使用
Jan 18 Javascript
JS控制层作圆周运动的方法
Jun 20 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
基于jquery实现弹幕效果
Sep 29 Javascript
JavaScript中常用的验证reg
Oct 13 Javascript
无循环 JavaScript(map、reduce、filter和find)
Apr 08 Javascript
node.js中实现kindEditor图片上传功能的方法教程
Apr 26 Javascript
JS实现登录页密码的显示和隐藏功能
Dec 06 Javascript
使用vue制作探探滑动堆叠组件的实例代码
Mar 07 Javascript
vue-cli 关闭热更新操作
Sep 18 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
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
2011/11/18 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
ExtJS中设置下拉列表框不可编辑的方法
2014/05/07 Javascript
一个JavaScript处理textarea中的字符成每一行实例
2014/09/22 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
2015/09/06 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
python 移除字符串尾部的数字方法
2018/07/17 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
美国校园市场:OCM
2017/06/08 全球购物
英国工具中心:UK Tool Centre
2017/07/10 全球购物
十八届三中全会感言
2014/03/10 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
党员作风建设整改方案
2014/10/27 职场文书
求职自我评价怎么写
2015/03/09 职场文书
2015年质检工作总结
2015/05/04 职场文书
法律意见书范文
2015/05/20 职场文书
学校中层领导培训心得体会
2016/01/11 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android