如何在Vuejs中优雅使用Javascript各种插件

Posted 李大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Vuejs中优雅使用Javascript各种插件相关的知识,希望对你有一定的参考价值。

在日常开发中,为了敏捷开发或者更快满足业务需求,不得不使使用js第三方库或者插件。

如何在Vue项目中引入javascript第三方库


 

全局变量

将 JavaScript 第三方库 添加到项目中,最简单的办法是通过将其附加到 window 对象上,以使其成为全局变量。

如何引入:

window._ = require(‘lodash‘); 

如何使用:

export default {
  created() {
    console.log(_.isEmpty() ? ‘Lodash everywhere!‘ : ‘Uh oh..‘);
  }
}

这种情况会使 window 变量不断增长,但是最关键的是,他们不能使用服务器渲染。当应用程序在服务端运行时,window 对象是 undefined 的,因此尝试访问 window 下的属性将会抛出一个错误。

使用ES6在每个文件中导入

二流的方法是将库导入到每个文件中:

// MyComponent.vue 文件
import _ from ‘lodash‘;
export default {
  created() {
    console.log(_.isEmpty() ? ‘Lodash is available here!‘ : ‘Uh oh..‘);
  }
}

这是有效的,但是你需要重复手动导入和移除,这是一个痛点:你必须记住将这个库导入到每个文件中,然后当你的某个文件不用这个库的时候, 记得要将它从这个文件中移除。如果你没有正确地设置你的构建工具,则可能会最终导致在构建包中存在同一个库的多个副本。

更好的方式

在Vue项目中使用Javascript库的最干净,最健壮的方法是将其代理为 Vue 原型对象的属性。我们用这种方式,将 Moment日期和时间库添加到我们的项目中:

import moment from ‘moment‘;
Object.definePrototype(Vue.prototype, ‘$moment‘, { value: moment });

由于所有组件都会继承 Vue 原型对象上方法,这将使 Moment 自动可用于任何组件,没有全局变量或任何需要手动导入的组件。它可以在任何 实例/组件 中简单地通过 this.$moment 访问被访问:

export default {
  created() {
    console.log(‘The time is ‘ . this.$moment().format("HH:mm"));
  }
}

大功告成!

以上是关于如何在Vuejs中优雅使用Javascript各种插件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 VueJS SFC 中使用 JavaScript 访问样式定义?

如何在javascript / vuejs中制作对象的副本[重复]

如何在javascript / vuejs中制作对象的副本[重复]

如何使用具有 ES6 标准的 vuejs 转换以下 JavaScript 逻辑

如何在 VueJs 组件中对 oembed javascript 标记进行整数处理?

如何在 Vuejs/Javascript 中将 Object 元素推送到数组中