国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

vue tab切換,解決echartst圖表寬度只有100px的問題

瀏覽:9日期:2023-01-03 17:58:03

解決思路:直接將圖表的寬高寫死,根據(jù)實(shí)際代碼進(jìn)行改寫,提供一個(gè)思路

1.將圖表放進(jìn)一個(gè)div里面

<div class='echarts'> <div :style='{width: ’100%’, height: ’150px’}'></div></div>

2.定義一個(gè)方法,并在mounted視圖更新的時(shí)候執(zhí)行

<script>export default { mounted() { this.setMyChart(); }, methods: { setMyChart() { // jq寫法 // 獲取父元素 var echarts = $(’.echarts’); // 獲取父元素寬高 var echartsWidth = echarts.outerWidth(true); var echartsHeight = echarts.outerHeight(true); // 獲取圖表元素 var myChart = $(’#myChart’); // 將父元素寬高賦值給圖表 myChart.css(’width’, myChart); myChart.css(’height’, myChart); // 原生js寫法 // 獲取父元素 // var echarts = document.querySelector(’.echarts’); // 獲取父元素寬高 // var echartsWidth = getStyle(echarts,’width’); // var echartsHeight = getStyle(echarts,’height’); // 獲取圖表元素 // var myChart = document.querySelector(’#myChart’); // 將父元素寬高賦值給圖表 // myChart.style.width = echartsWidth; // myChart.style.height = echartsHeight; // 這是一個(gè)封裝好的方法,兼容IE,第一個(gè)參數(shù),element, 第二個(gè)屬性,css樣式 // function getStyle(obj, attr) { // if (obj.currentStyle) { // return obj.currentStyle[attr]; // } else { // return document.defaultView.getComputedStyle(obj,null)[attr]; // } // } } }};</script>

3.樣式

<style scoped>.echarts { width:300px; height:150px;} </style>

如果本篇文章對(duì)你有幫助的話,很高興能夠幫助上你。

補(bǔ)充知識(shí):vue項(xiàng)目tab切換echart圖表切換寬度縮小和圖表內(nèi)容不正確解決

代碼:

布局:

<TabButton :btnValue1='’總數(shù)’' :btnValue2='’明細(xì)’' @watchFlag='handler'></TabButton> <div class='it_content'> <div ref='work' v-show='flag===false'></div> <div ref='workTotal' v-show='flag===true'></div> </div>

處理函數(shù):

handler(flag){ this.flag=flag; if(!this.flag){ this.$nextTick(() => { this.drawwork(); // 明細(xì)圖 }); }else{ this.$nextTick(() => { this.drawworkTotal(); // 總數(shù)圖 }); } },

1、解決寬度縮小的問題

本來是用vue指令的v-if,但是發(fā)現(xiàn)用v-if出現(xiàn)寬度縮小的問題。后來改用v-show。這是因?yàn)関-if指令是將Dom元素去除掉位置空間了,v-show是將Dom元素位置空間保留了,但并沒有進(jìn)行渲染。v-show保留所定義的樣式,空間位置也被保留,echarts圖表的寬高依舊和之前一樣,所以不會(huì)縮小。

2、圖表內(nèi)容不正確

利用this.$nextTick(() => {})。Vue 實(shí)現(xiàn)響應(yīng)式并不是數(shù)據(jù)發(fā)生變化之后 DOM 立即變化,而是按一定的策略進(jìn)行 DOM 的更新。 $nextTick 是在下次 DOM 更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào),在修改數(shù)據(jù)之后使用 $nextTick,則可以在回調(diào)中獲取更新后的 DOM。flag發(fā)生變化之后,Dom沒有立即更新了,通過 $nextTick 回調(diào)函數(shù),執(zhí)行echarts的繪畫。

nextTick的由來:

由于VUE的數(shù)據(jù)驅(qū)動(dòng)視圖更新,是異步的,即修改數(shù)據(jù)的當(dāng)下,視圖不會(huì)立刻更新,而是等同一事件循環(huán)中的所有數(shù)據(jù)變化完成之后,再統(tǒng)一進(jìn)行視圖更新。

nextTick的觸發(fā)時(shí)機(jī):

在同一事件循環(huán)中的數(shù)據(jù)變化后,DOM完成更新,立即執(zhí)行nextTick(callback)內(nèi)的回調(diào)。

結(jié)合nextTick的由來,可以推出每個(gè)事件循環(huán)中,nextTick觸發(fā)的時(shí)機(jī):

同一事件循環(huán)中的代碼執(zhí)行完畢 -> DOM 更新 -> nextTick callback觸發(fā)

應(yīng)用場(chǎng)景:

需要在視圖更新之后,基于新的視圖進(jìn)行操作。

以上這篇vue tab切換,解決echartst圖表寬度只有100px的問題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美一级专区免费大片俄罗斯 | 国产美女又黄又爽又色视频免费 | 欧美精品另类hdvideo | 亚洲无吗视频 | 国产成人精品视频播放 | 日本毛片在线看 | gogo999亚洲肉体艺术大胆 | 免费一级毛片视频 | 亚洲午夜网站 | 在线免费观看毛片网站 | 国产一区二区在免费观看 | 久草在线视频免费资源观看 | 性色xxx | 日本高清一本二本三本如色坊 | 久久久久久综合七次郎 | 67194欧美成l人在线观看免费 | 我想看三级特黄 | www.三级| 日韩中文字幕在线看 | 国产精品久久久久久久久久久威 | 日本加勒比在线观看 | www.黄色片 | 国产免费高清福利拍拍拍 | 久久999精品| 中文字幕精品一区二区精品 | 欧美成人免费全部色播 | 一级 黄 色 片免费 一级aaaaaa毛片免费 | 精品一区二区三区在线观看 | 免费观看一级成人毛片软件 | 成人午夜在线观看国产 | 精品免费久久久久欧美亚一区 | 九九精品在线视频 | 欧美日韩亚洲一区二区三区在线观看 | 久久久久久久久免费视频 | 黄色三级视频在线播放 | 日本a级三级三级三级久久 日本a级特黄三级三级三级 | 97视频在线免费观看 | 日本天堂网址 | 依依成人综合网 | 99热久久国产精品免费看 | 免费一级特黄欧美大片勹久久网 |