解决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实现改变TEXTAREA滚动条和按钮的颜色,以及怎样让滚动条变得扁平
Apr 20 Javascript
Javascript图像处理—为矩阵添加常用方法
Dec 27 Javascript
jQuery选择器之基本选择器与层次选择器
Mar 03 Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 Javascript
js判断上传文件后缀名是否合法
Jan 28 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
js读取json文件片段中的数据实例
Mar 09 Javascript
通俗易懂地解释JS中的闭包
Oct 23 Javascript
微信小程序商品详情页的底部弹出框效果
Nov 16 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
node中短信api实现验证码登录的示例代码
Jan 20 Javascript
如何用JS实现网页瀑布流布局
Apr 24 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
APMServ使用说明
2006/10/23 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JavaScript学习笔记之数组的增、删、改、查
2016/03/23 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
JS日程管理插件FullCalendar简单实例
2017/02/07 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
jquery+ajax实现省市区三级联动 (封装和不封装两种方式)
2017/05/15 jQuery
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python matplotlib 在指定的两个点之间连线方法
2018/05/25 Python
学会python自动收发邮件 代替你问候女友
2020/05/20 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
css3的transition效果和transfor效果示例介绍
2013/10/30 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
公司运动会策划方案
2014/05/25 职场文书
电气自动化求职信
2014/06/24 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
2014幼儿园教师个人工作总结
2014/11/08 职场文书
2015国庆节宣传语
2015/07/14 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
班主任培训研修日志
2015/11/13 职场文书
公司会议开幕词
2016/03/03 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript