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

您的位置:首頁技術文章
文章詳情頁

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

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

解決思路:直接將圖表的寬高寫死,根據實際代碼進行改寫,提供一個思路

1.將圖表放進一個div里面

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

2.定義一個方法,并在mounted視圖更新的時候執行

<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; // 這是一個封裝好的方法,兼容IE,第一個參數,element, 第二個屬性,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>

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

補充知識:vue項目tab切換echart圖表切換寬度縮小和圖表內容不正確解決

代碼:

布局:

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

處理函數:

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

1、解決寬度縮小的問題

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

2、圖表內容不正確

利用this.$nextTick(() => {})。Vue 實現響應式并不是數據發生變化之后 DOM 立即變化,而是按一定的策略進行 DOM 的更新。 $nextTick 是在下次 DOM 更新循環結束之后執行延遲回調,在修改數據之后使用 $nextTick,則可以在回調中獲取更新后的 DOM。flag發生變化之后,Dom沒有立即更新了,通過 $nextTick 回調函數,執行echarts的繪畫。

nextTick的由來:

由于VUE的數據驅動視圖更新,是異步的,即修改數據的當下,視圖不會立刻更新,而是等同一事件循環中的所有數據變化完成之后,再統一進行視圖更新。

nextTick的觸發時機:

在同一事件循環中的數據變化后,DOM完成更新,立即執行nextTick(callback)內的回調。

結合nextTick的由來,可以推出每個事件循環中,nextTick觸發的時機:

同一事件循環中的代碼執行完畢 -> DOM 更新 -> nextTick callback觸發

應用場景:

需要在視圖更新之后,基于新的視圖進行操作。

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

標簽: Vue
相關文章:
主站蜘蛛池模板: 日韩亚洲欧美一区噜噜噜 | 国产成人精品免费视频网页大全 | 久久久久久99精品 | 91欧美精品 | 毛片在线观看视频 | 毛片一级 | 性刺激欧美三级在线现看中文 | 国产美女一级特黄毛片 | 亚洲一区二区三区中文字幕 | 亚洲性综合 | 久久国产一级毛片一区二区 | 亚洲偷自拍另类图片二区 | 国产成人午夜精品免费视频 | 99精彩免费观看 | 美女张腿男人桶免费视频 | 黄色国产网站 | 高清欧美不卡一区二区三区 | 日韩一区二区三区视频在线观看 | 96精品免费视频大全 | 97视频免费在线观看 | 九九99| 亚洲一区二区在线 | 国产日韩美国成人 | 精品国产精品 | 91在线精品亚洲一区二区 | 日韩欧美第一页 | 日本阿v精品视频在线观看 日本阿v视频在线观看高清 | 成人网视频在线观看免费 | 色天使影院 | 九九久久国产 | 国产成人精品亚洲 | 精品在线播放视频 | 99久久国内精品成人免费 | 精品久久久久久中文字幕一区 | 一区一精品 | 日韩一级高清 | 久久精品国产精品青草不卡 | 自拍 欧美 在线 综合 另类 | 亚洲精品影院久久久久久 | 精品午夜寂寞黄网站在线 | 福利片免费一区二区三区 |