使用Nuxt / Vue加载D3

时间:2017-05-22 20:06:06

标签: d3.js vue.js nuxt.js

我正在尝试在我使用Nuxt构建的应用程序中实现D3。我已使用<script>成功将其导入import * as d3 from 'd3'部分的视图中,但因为正在渲染应用的服务器端D3的功能无效(即{{1} })由于缺乏浏览器。在Nuxt plugin documentation中,它建议了仅限客户端外部插件的模式:

d3.select(...)

我试图在我项目的module.exports = { plugins: [ { src: '~plugins/vue-notifications', ssr: false } ] } 中实现模式:

nuxt.config.js

然而D3在查找module.exports = { head: { title: 'My Demo App', meta: [...], link: [...] }, loading: {...}, plugins: [ { src: '~node_modules/d3/build/d3.js', ssr: false} ] } 时抛出ReferenceError,Nuxt在控制台中抛出document,指向SyntaxError的插件字段中的某些内容。

供参考,nuxt.config.js

demo.vue

有人能够指出我做错了吗?

1 个答案:

答案 0 :(得分:4)

对于访问此页面寻找解决方案的任何人, 来自piyushchauhan2011 here on GitHub的这些建议让我走向了正确的方向 -

我需要做的就是在我的单个文件组件中导入d3然后仅在mounted() here

中对d3执行任何dom操作

在此之前,我当然必须使用yarn add d3(或npm install d3 --save)将d3添加到我的项目中。