解決vue頁(yè)面渲染但dom沒渲染的操作
我就廢話不多說了,大家還是直接看代碼吧~
this.$nextTick(() => {
$("select[name='ddlCostCenter']").select2({
language: "zh-CN"
});
});
補(bǔ)充知識(shí):vue+Echarts動(dòng)態(tài)數(shù)據(jù)已經(jīng)賦值,但是無法渲染頁(yè)面的問題
最近用vue+Echarts想做一個(gè)餅狀統(tǒng)計(jì)圖,但是數(shù)據(jù)明明已經(jīng)綁定完畢,但是頁(yè)面渲染一直沒有效果,最終才發(fā)現(xiàn)問題所在,自己還是個(gè)新手,主要對(duì)vue還不是很熟悉。廢話不說,接下來看我的代碼:
正常的給個(gè)div的大小
<div>
<div id="echartss" :style="{width: '100%', height: '600px'}"></div>
</div>
接下來是option部分:
echarts1_option:{
backgroundColor: '#45515a', //背景顏色
//標(biāo)題
title: {
text: '訂單中保險(xiǎn)公司所占的比例',
subtext: '餅圖示例',
left: 'center',
top: 20,
textStyle: {
color: '#ccc',
fontStyle: 'italic'//標(biāo)題字體
}
},
//彈窗,響應(yīng)鼠標(biāo)指向,顯示具體細(xì)節(jié)
tooltip : {
trigger: 'item',//以具體項(xiàng)目觸發(fā)彈窗
formatter: "{a} <br/> : {c} (wppm3vysvbp%)",
},
//圖例,選擇要顯示的項(xiàng)目
legend:{
orient:'vertical',
left:'left',
textStyle:{
color:'#c8c8d0'
},
data:['安心','安盛天平','中華聯(lián)合保險(xiǎn)','中國(guó)太平洋保險(xiǎn)','中國(guó)人保財(cái)險(xiǎn)','平安車險(xiǎn)'] //注意要和數(shù)據(jù)的name相對(duì)應(yīng)
},
//工具箱
toolbox:{
show:true,//顯示工具箱
feature:{
dataView:{show:true}, //以文字形式顯示數(shù)據(jù)
restore:{show:true}, //還原
//dataZoom:{show:true}, //區(qū)域縮放
saveAsImage:{show:true}, //保存圖片
//magicType:{type:['line','bar']}//動(dòng)態(tài)數(shù)據(jù)切換,數(shù)據(jù)顯示可以在該規(guī)定內(nèi)容中切換顯示方式,
}
},
/*//視覺映射組件,將數(shù)據(jù)映射到視覺元素上
visualMap: {
show: false,
min: 1,
max: 2,
dimension: 0, //選取數(shù)據(jù)的維度,如人數(shù)據(jù):[身高,體重],則1代表將體重進(jìn)行映射,默認(rèn)值為數(shù)組的最后一位
// seriesIndex: 4, //選取數(shù)據(jù)集合中的哪個(gè)數(shù)組,如{一班},{二班},默認(rèn)選取data中的所有數(shù)據(jù)集
inRange: {
//選定了要映射的對(duì)象,用inRange詳細(xì)寫要渲染的具體細(xì)節(jié),[x,y]中x指最小值對(duì)應(yīng)的量(亮度,飽和度等),y指最大值對(duì)應(yīng)的量,其余的按各自value線性渲染
color:['red'],
colorLightness: [0,1],
colorSaturation:[0,1]
}
},*/
//數(shù)據(jù)
series : [
{
name: '成交數(shù)量',
type: 'pie',
radius: '55%',
center: ['50%', '50%'],
data:[
].sort(function (a, b) {
return a.value - b.value;
}),
roseType: 'radius',//角度和半徑展現(xiàn)百分比,'area'只用半徑展現(xiàn)
label: { //餅圖圖形的文本標(biāo)簽
normal: { //下同,normal指在普通情況下樣式,而非高亮?xí)r樣式
textStyle: {
color: 'rgba(255, 255, 255, 0.3)'
}
}
},
labelLine: { //引導(dǎo)線樣式
normal: {
lineStyle: {
color: 'rgba(255, 255, 255, 0.3)'
},
smooth: 0.5, //0-1,越大越平滑彎曲
length: 10, //從塊到文字的第一段長(zhǎng)
length2: 20 //拐彎到文字的段長(zhǎng)
}
},
itemStyle: { //圖例樣式
normal: {
//color: '#97413c',
shadowBlur: 50,//陰影模糊程度
shadowColor: 'rgba(0, 0, 0, 0.5)',//陰影顏色,一般黑
}
},
animationType: 'scale', //初始動(dòng)畫效果,scale是縮放,expansion是展開
animationEasing: 'elasticOut', //初始動(dòng)畫緩動(dòng)效果
animationDelay: function (idx) { //數(shù)據(jù)更新動(dòng)畫時(shí)長(zhǎng),idx限定了每個(gè)數(shù)據(jù)塊從無到有的速度
return Math.random() * 200;
}
}
],
color: ['#97858c','pink','green','yellow','orange','#97813c'],
},
接下來看init代碼
init(){
// 基于準(zhǔn)備好的dom,初始化echarts實(shí)例
let myChart = echarts.init(document.getElementById('echartss'))
// 繪制圖表,this.echarts1_option是數(shù)據(jù)
myChart.setOption(this.echarts1_option,true)
},
然后是給動(dòng)態(tài)數(shù)據(jù)賦值代碼(從后臺(tái)接口取得的數(shù)據(jù))
drawline() {
// 數(shù)據(jù)初始化
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('連接失敗,請(qǐng)檢查網(wǎng)絡(luò)!');
});
},
到目前為止,頁(yè)面的結(jié)果是:

頁(yè)面完全沒有效果:
在加上下面代碼后:
//數(shù)據(jù)自動(dòng)刷新,必然需要一個(gè)監(jiān)聽機(jī)制告訴Echarts重新設(shè)置數(shù)據(jù)
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 //對(duì)象內(nèi)部屬性的監(jiān)聽,關(guān)鍵。
}
},
我們?cè)倏纯催\(yùn)行結(jié)果:

數(shù)據(jù)雖然刷新了,但是我們的Echart's組件卻不知道,必須有個(gè)watch過程。
以上這篇解決vue頁(yè)面渲染但dom沒渲染的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue Echarts實(shí)現(xiàn)圖表的動(dòng)態(tài)適配以及如何優(yōu)化
這篇文章主要介紹了Vue Echarts實(shí)現(xiàn)圖表的動(dòng)態(tài)適配以及如何優(yōu)化,在實(shí)際的前端開發(fā)過程中,動(dòng)態(tài)適配是一個(gè)非常重要的問題,在數(shù)據(jù)可視化的場(chǎng)景下,圖表的動(dòng)態(tài)適配尤為重要,需要的朋友可以參考下2023-05-05
在vue-cli3.0 中使用預(yù)處理器 (Sass/Less/Stylus) 配置全局變量操作
這篇文章主要介紹了在vue-cli3.0 中使用預(yù)處理器 (Sass/Less/Stylus) 配置全局變量操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue項(xiàng)目配置國(guó)際化$t('')的介紹和用法示例
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目配置國(guó)際化?$t('')的介紹和用法的相關(guān)資料,多語(yǔ)言和國(guó)際化現(xiàn)在已經(jīng)成為一個(gè)網(wǎng)站或應(yīng)用的必要功能之一,Vue作為一款流行的前端框架,在這方面也有著靈活的解決方案,需要的朋友可以參考下2023-09-09
Antd的Table組件嵌套Table以及選擇框聯(lián)動(dòng)操作
這篇文章主要介紹了Antd的Table組件嵌套Table以及選擇框聯(lián)動(dòng)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
vue2中seo時(shí)使用vue-meta-info的方法
這篇文章主要介紹了vue2中seo時(shí)使用vue-meta-info,本文通過實(shí)例代碼給大家詳細(xì)講解,文末給大家補(bǔ)充介紹了vue seo管理 vue-meta-info 動(dòng)態(tài)設(shè)置meta和title的相關(guān)知識(shí),需要的朋友可以參考下2022-10-10
vue-drawer-layout實(shí)現(xiàn)手勢(shì)滑出菜單欄
這篇文章主要為大家詳細(xì)介紹了vue-drawer-layout實(shí)現(xiàn)手勢(shì)滑出菜單欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
Element 的 el-table 表格實(shí)現(xiàn)單元格合并功能
這篇文章主要介紹了Element 的 el-table 表格實(shí)現(xiàn)單元格合并功能,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2024-07-07

