解决vue页面渲染但dom没渲染的操作


Posted in Javascript onJuly 27, 2020

我就废话不多说了,大家还是直接看代码吧~

this.$nextTick(() => {
            $("select[name='ddlCostCenter']").select2({
              language: "zh-CN"
            });
          });

补充知识:vue+Echarts动态数据已经赋值,但是无法渲染页面的问题

最近用vue+Echarts想做一个饼状统计图,但是数据明明已经绑定完毕,但是页面渲染一直没有效果,最终才发现问题所在,自己还是个新手,主要对vue还不是很熟悉。废话不说,接下来看我的代码:

正常的给个div的大小

<div>
  <div id="echartss" :style="{width: '100%', height: '600px'}"></div>
 </div>

接下来是option部分:

echarts1_option:{
      backgroundColor: '#45515a', //背景颜色
      //标题
      title: {
       text: '订单中保险公司所占的比例',
       subtext: '饼图示例',
       left: 'center',
       top: 20,
       textStyle: {
        color: '#ccc',
        fontStyle: 'italic'//标题字体
       }
      },
      //弹窗,响应鼠标指向,显示具体细节
      tooltip : {
       trigger: 'item',//以具体项目触发弹窗
       formatter: "{a} <br/>{b} : {c} ({d}%)",
      },
      //图例,选择要显示的项目
      legend:{
       orient:'vertical',
       left:'left',
       textStyle:{
        color:'#c8c8d0'
       },
       data:['安心','安盛天平','中华联合保险','中国太平洋保险','中国人保财险','平安车险'] //注意要和数据的name相对应
      },
      //工具箱
      toolbox:{
       show:true,//显示工具箱
       feature:{
        dataView:{show:true}, //以文字形式显示数据
        restore:{show:true},  //还原
        //dataZoom:{show:true}, //区域缩放
        saveAsImage:{show:true}, //保存图片
        //magicType:{type:['line','bar']}//动态数据切换,数据显示可以在该规定内容中切换显示方式,
       }
      },
      /*//视觉映射组件,将数据映射到视觉元素上
      visualMap: {
       show: false,
       min: 1,
       max: 2,
       dimension: 0, //选取数据的维度,如人数据:[身高,体重],则1代表将体重进行映射,默认值为数组的最后一位
       // seriesIndex: 4, //选取数据集合中的哪个数组,如{一班},{二班},默认选取data中的所有数据集
       inRange: {
        //选定了要映射的对象,用inRange详细写要渲染的具体细节,[x,y]中x指最小值对应的量(亮度,饱和度等),y指最大值对应的量,其余的按各自value线性渲染
        color:['red'],
        colorLightness: [0,1],
        colorSaturation:[0,1]
       }
      },*/
      //数据
      series : [
       {
        name: '成交数量',
        type: 'pie',
        radius: '55%',
        center: ['50%', '50%'],
        data:[

        ].sort(function (a, b) {
         return a.value - b.value;
        }),

        roseType: 'radius',//角度和半径展现百分比,'area'只用半径展现
        label: { //饼图图形的文本标签
         normal: { //下同,normal指在普通情况下样式,而非高亮时样式
          textStyle: {
           color: 'rgba(255, 255, 255, 0.3)'
          }
         }
        },
        labelLine: { //引导线样式
         normal: {
          lineStyle: {
           color: 'rgba(255, 255, 255, 0.3)'
          },
          smooth: 0.5, //0-1,越大越平滑弯曲
          length: 10, //从块到文字的第一段长
          length2: 20 //拐弯到文字的段长
         }
        },

        itemStyle: { //图例样式
         normal: {
           //color: '#97413c',
          shadowBlur: 50,//阴影模糊程度
          shadowColor: 'rgba(0, 0, 0, 0.5)',//阴影颜色,一般黑

         }
        },
        animationType: 'scale', //初始动画效果,scale是缩放,expansion是展开
        animationEasing: 'elasticOut', //初始动画缓动效果
        animationDelay: function (idx) { //数据更新动画时长,idx限定了每个数据块从无到有的速度
         return Math.random() * 200;
        }


       }
      ],
      color: ['#97858c','pink','green','yellow','orange','#97813c'],
     },

接下来看init代码

init(){
     // 基于准备好的dom,初始化echarts实例
     let myChart = echarts.init(document.getElementById('echartss'))
     // 绘制图表,this.echarts1_option是数据
     myChart.setOption(this.echarts1_option,true)
    },

然后是给动态数据赋值代码(从后台接口取得的数据)

drawline() {
     // 数据初始化
     API.account.getAccount().then(({data}) => {
      if (data && data.code == 0) {
       this.echarts1_option.series[0].data=data.data.list;
      } else {
       this.$Message.error(data.msg);
      }
     }).catch((data) => {
      this.$Message.error('连接失败,请检查网络!');
     });

    },

到目前为止,页面的结果是:

解决vue页面渲染但dom没渲染的操作

页面完全没有效果:

在加上下面代码后:

//数据自动刷新,必然需要一个监听机制告诉Echarts重新设置数据
  watch: {
   //观察option的变化
   echarts1_option: {
    handler(newVal, oldVal) {
     if (this.myChart) {
      if (newVal) {
       this.myChart.setOption(newVal);
      } else {
       this.myChart.setOption(oldVal);
      }
     } else {
      this.init();
     }
    },
    deep: true //对象内部属性的监听,关键。
   }
  },

我们再看看运行结果:

解决vue页面渲染但dom没渲染的操作

数据虽然刷新了,但是我们的Echart's组件却不知道,必须有个watch过程。

以上这篇解决vue页面渲染但dom没渲染的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript 处理 URL 的两个函数代码
Aug 13 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
jQuery插件的写法分享
Jun 12 Javascript
JS字符串截取函数实例
Dec 27 Javascript
javascript实现的网站访问量统计代码
Dec 20 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
JS简单获取当前日期时间的方法(如:2017-03-29 11:41:10 星期四)
Mar 29 Javascript
Vue中render函数的使用方法
Jan 31 Javascript
Vue render深入开发讲解
Apr 13 Javascript
vue裁切预览组件功能的实现步骤
May 04 Javascript
Vue-CLI 项目在pycharm中配置方法
Aug 30 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
Jul 27 #Javascript
Element Breadcrumb 面包屑的使用方法
Jul 26 #Javascript
Element PageHeader页头的使用方法
Jul 26 #Javascript
Element Dropdown下拉菜单的使用方法
Jul 26 #Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 #Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 #Javascript
Element Steps步骤条的使用方法
Jul 26 #Javascript
You might like
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
2014/11/06 PHP
Laravel 5 框架入门(三)
2015/04/09 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
js实现的简单radio背景颜色选择器代码
2015/08/18 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
2018/10/08 Javascript
编写一个javascript元循环求值器的方法
2020/04/14 Javascript
jQuery弹框插件使用方法详解
2020/05/26 jQuery
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python3.6使用pymysql连接Mysql数据库
2018/05/25 Python
python代码 输入数字使其反向输出的方法
2018/12/22 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
python各层级目录下import方法代码实例
2020/01/20 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Pygame的程序开始示例代码
2020/05/07 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
事务机电主管工作职责
2014/02/25 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
五一手机促销方案
2014/03/08 职场文书
生态养殖创业计划书
2014/05/06 职场文书
药剂专业自荐书
2014/06/20 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
趣味运动会简讯
2015/07/20 职场文书