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 相关文章推荐
基于jQuery的message插件实现右下角弹出消息框
Jan 11 Javascript
javascript学习笔记(七) js函数介绍
Jun 19 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
javascript常用代码段搜集
Dec 04 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
Dec 15 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
Jun 09 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
Dec 01 Javascript
jquery实现简单的瀑布流布局
Dec 11 Javascript
JS实现iframe自适应高度的方法示例
Jan 07 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
vue项目中api接口管理总结
Apr 20 Javascript
JS实现返回上一页并刷新页面的方法分析
Jul 16 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+jQuery实现自动补全功能源码
2013/05/15 PHP
深入理解PHP内核(一)
2015/11/10 PHP
Yii2 GridView实现列表页直接修改数据的方法
2016/05/16 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
微信小程序纯文本实现@功能
2020/04/08 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
Python中的异常处理学习笔记
2015/01/28 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
python机器学习实战之最近邻kNN分类器
2017/12/20 Python
python实现屏保计时器的示例代码
2018/08/08 Python
python 自定义装饰器实例详解
2019/07/20 Python
Java ExcutorService优雅关闭方式解析
2020/05/30 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
KEETSA环保床垫:更好的睡眠,更好的生活!
2016/11/24 全球购物
通信生自我鉴定
2014/01/18 职场文书
警示教育活动总结
2014/05/05 职场文书
感恩教育活动总结
2014/05/05 职场文书
给校长的建议书200字
2014/05/16 职场文书
欢迎横幅标语
2014/06/17 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
JS数组去重详情
2021/11/07 Javascript