小程序開發(fā)-mpvue中使用圖表庫

wx-f2

圖表庫

在開發(fā)中使用圖表庫芙粱,推薦百度的 Echarts背率,和阿里出品的 AntV家族娜膘,其中移動端為 AntV-F2

這里antV-F2有現(xiàn)成的原生小程序使用教程(wx-f2:wx-f2)硼瓣,就不做贅述瞳抓,只講解如何在mpvue框架中使用刺啦。

mpvue框架中使用 Echarts

參考文檔: mpvue-echarts

  • 安裝 mpvue-echartsecharts 插件
## mpvue-echarts
npm i mpvue-echarts --save
## echarts
npm i echarts --save
  • vue文件中以組件的形式使用
<template>
  <div class="echarts-wrap">
    <mpvue-echarts :echarts="echarts" :onInit="onInit" canvasId="demo-canvas" />
  </div>
</template>

<script>
import echarts from 'echarts'
import mpvueEcharts from 'mpvue-echarts'

let chart = null;

function initChart(canvas, width, height) {
  chart = echarts.init(canvas, null, {
    width: width,
    height: height
  });
  canvas.setChart(chart);

  var option = {}; // ECharts 配置項

  chart.setOption(option);

  return chart; // 返回 chart 后可以自動綁定觸摸操作
}

export default {
  components: {
    mpvueEcharts
  },
  data () {
    return {
      echarts,
      onInit: initChart
    }
  }
}
</script>

<style scoped>
.echarts-wrap {
  width: 100%;
  height: 300px;
}
</style>

mpvue框架中使用antV-F2

antV-F2官方給出了小程序原生的使用方式留特,并無vue相關(guān)的依賴插件,所以我們把小程序原生插件放在 ** “static” ** 文件夾中進行使用

注意:這里不能放在"src"目錄下玛瘸,防止被webpack工具打包

wx-f2中看 ff-canvas 源碼可以看出. vue文件data內(nèi)部的opts.onInit 是一個 function 不能被傳遞到組件上, 通過主動調(diào)用 ff-canvas組件 的 init 方法, 并且將initChart傳入就即正常使用了

  • 將wx-f2對應(yīng)的導(dǎo)入項目static文件夾中
static文件夾
  • 項目src目錄下pages.js以小程序的方式引入wx-f2組件配置
module.exports = [
 {
   path: 'pages/testF2/index', // 頁面路徑蜕青,同時是 vue 文件相對于 src 的路徑
   config: {
     // 引入使用wx-f2組件
     usingComponents: {
       'ff-canvas': '/static/libs/f2-canvas/f2-canvas'
     }
   }
 },
 {
   path: 'packageA/logs',
   subPackage: true,
   config: { // 頁面配置,即 page.json 的內(nèi)容
     navigationBarTitleText: '查看啟動日志'
   }
 }
]
  • vue文件中使用

** 注意:mpvue中使用必須以懶加載的形式使用糊渊,即主動觸發(fā)渲染右核,否則會失敗 **

<!-- demo -->
<template>
  <div style="height: 100vh">
    <!-- opts 前面加冒號 -->
    <ff-canvas id="column" canvas-id="column" :opts="opts" />
  </div>
</template>

<script>
  // 這里注意路徑,要引入 static 文件夾中的f2.js文件
  import F2 from "../../../static/f2-canvas/lib/f2";

  let chart = null;

  function initChart(canvas, width, height) {
    // 使用 F2 繪制圖表
    const data = [{
        year: "1951 年",
        sales: 38
      },
      {
        year: "1952 年",
        sales: 52
      },
      {
        year: "1956 年",
        sales: 61
      },
      {
        year: "1957 年",
        sales: 145
      },
      {
        year: "1958 年",
        sales: 48
      },
      {
        year: "1959 年",
        sales: 38
      },
      {
        year: "1960 年",
        sales: 38
      },
      {
        year: "1962 年",
        sales: 38
      }
    ];
    chart = new F2.Chart({
      el: canvas, 
      width,
      height
    });

    chart.source(data, {
      sales: {
        tickCount: 5
      }
    });
    chart.tooltip({
      showItemMarker: false,
      onShow(ev) {
        const {
          items
        } = ev;
        items[0].name = null;
        items[0].name = items[0].title;
        items[0].value = "¥ " + items[0].value;
      }
    });
    chart.interval().position("year*sales");
    chart.render();
    return chart;
  }

  export default {
    data() {
      return {
        motto: "Hello World",
        opts: {
          // 使用延時初始化 -- 重要
          lazyLoad: true
        }
      };
    },

    components: {},

    methods: {

    },

    onLoad() {
      // 在 onLoad 內(nèi)部通過id找到該組件, 然后調(diào)用該組件的初始化方法
      this.$mp.page.selectComponent('#column').init(initChart)
    }
  };
</script>

<style scoped>
</style>

注意:

  1. 建議 ‘ this.$mp.page.selectComponent('#column').init(initChart) ’ 這行代碼寫在vue生命周期mounted里面渺绒,而不是小程序onLoad里面贺喝,因為vue頁面加載在小程序后面

  2. wx-f2中的tooltip失效,并未使用成功芒篷,后續(xù)待解決(touch事件綁定成功搜变,但對應(yīng)的圖表效果沒有)

-- LucaLJX: github:https://github.com/LucaLJX

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市针炉,隨后出現(xiàn)的幾起案子挠他,更是在濱河造成了極大的恐慌,老刑警劉巖篡帕,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件殖侵,死亡現(xiàn)場離奇詭異贸呢,居然都是意外死亡,警方通過查閱死者的電腦和手機拢军,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門楞陷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茉唉,你說我怎么就攤上這事固蛾。” “怎么了度陆?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵艾凯,是天一觀的道長。 經(jīng)常有香客問我懂傀,道長趾诗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任蹬蚁,我火速辦了婚禮恃泪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘犀斋。我一直安慰自己贝乎,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布闪水。 她就那樣靜靜地躺著糕非,像睡著了一般。 火紅的嫁衣襯著肌膚如雪球榆。 梳的紋絲不亂的頭發(fā)上朽肥,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音持钉,去河邊找鬼衡招。 笑死,一個胖子當(dāng)著我的面吹牛每强,可吹牛的內(nèi)容都是我干的始腾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼空执,長吁一口氣:“原來是場噩夢啊……” “哼浪箭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起辨绊,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤奶栖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宣鄙,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡袍镀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了冻晤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苇羡。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鼻弧,靈堂內(nèi)的尸體忽然破棺而出设江,到底是詐尸還是另有隱情,我是刑警寧澤温数,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布绣硝,位于F島的核電站,受9級特大地震影響撑刺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜握玛,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一够傍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挠铲,春花似錦冕屯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓢棒,卻和暖如春浴韭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脯宿。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工念颈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人连霉。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓榴芳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親跺撼。 傳聞我的和親對象是個殘疾皇子窟感,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容