如何在vuejs中优雅使用javascript各种插件

李大白      2022-02-14     176

关键词:

在日常开发中,为了敏捷开发或者更快满足业务需求,不得不使使用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 SFC 中使用 JavaScript 访问样式定义?

】如何在VueJSSFC中使用JavaScript访问样式定义?【英文标题】:HowtoaccessstyledefinitionswithJavaScriptinVueJSSFCs?【发布时间】:2019-01-2616:56:55【问题描述】:我正在做一个应用程序,我需要在VueJS的单个文件组件中提取样式标记内的CSS。... 查看详情

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

】如何在javascript/vuejs中制作对象的副本[重复]【英文标题】:howtomakeacopyofobjectinjavascript/vuejs[duplicate]【发布时间】:2018-08-0806:38:34【问题描述】:我正在使用js对象,可以说:items:[text:\'text1\',active:true,text:\'text1\',active:true,text:\'te... 查看详情

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

】如何在javascript/vuejs中制作对象的副本[重复]【英文标题】:howtomakeacopyofobjectinjavascript/vuejs[duplicate]【发布时间】:2018-08-0806:38:34【问题描述】:我正在使用js对象,可以说:items:[text:\'text1\',active:true,text:\'text1\',active:true,text:\'te... 查看详情

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

】如何在VueJs组件中对oembedjavascript标记进行整数处理?【英文标题】:HowtointegeranoembedjavascripttaginsideaVueJscomponent?【发布时间】:2021-01-2917:59:01【问题描述】:我有一个“嵌入”字段供用户使用,用于将简单链接转换为内容丰富... 查看详情

如何在 VueJS 组件中使用通用脚本

...发布时间】:2020-04-2210:06:34【问题描述】:当我尝试使用javascript文件中的方法时,我有一个组件(见下文)。但不起作用,正确的做法是什么?<template><divid="test"></div></template><sc 查看详情

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

】如何在Vuejs/Javascript中将Object元素推送到数组中【英文标题】:HowtopushObjectelementtoanarrayinVuejs/Javascript【发布时间】:2017-12-1121:05:30【问题描述】:我正在尝试在VueJs中构建一个小型应用程序,以下是我的数据集:data()returnpusher:\... 查看详情

如何在 vuejs 中使用 axios 从数组中发布多个请求?

...个请求。我读过一些关于axios.all()的内容,但不知道我是javascript新手。<divid="app">&l 查看详情

javascript使用ref在vuejs中获取元素(代码片段)

查看详情

我们如何在 vuejs 的 javascript 文件中定义的 vuejs 的 html 文件中调用函数而不在 html 文件中创建按钮?

】我们如何在vuejs的javascript文件中定义的vuejs的html文件中调用函数而不在html文件中创建按钮?【英文标题】:Howdowecallafunctionwithinthehtmlfileofvuejsdefinedinthejavascriptfileofvuejswithoutcreatingabuttoninthehtmlfile?【发布时间】:2020-09-0711:04:45【... 查看详情

使用 javascript 的动态表单提交 - 如何优雅的代码?

】使用javascript的动态表单提交-如何优雅的代码?【英文标题】:Dynamicformsubmissionusingjavascript-howtoelegantcode?【发布时间】:2009-05-2615:57:18【问题描述】:问题来了:我的页面显示一组项目。每个项目都有一个与之关联的复选框(... 查看详情

使用 Vuejs 和普通的 Javascript (vanilla)

】使用Vuejs和普通的Javascript(vanilla)【英文标题】:WorkwithVuejsandnormalJavascript(vanilla)【发布时间】:2021-02-1110:21:06【问题描述】:我需要使用Vue并在普通javascript中调用另一个函数,还需要更改Vue中的一些变量,然后在Javascript中读... 查看详情

如何在国内优雅地使用rancher(代码片段)

 本文来源RancherLabs Rancher进入中国已经4年,并在今年2月份完成了中国本土化和国产化。作为一款开源的企业级Kubernetes管理平台,我们一直十分关注Rancher社区用户的各种诉求。在我们的技术社区中,我们常常收到这样的... 查看详情

如何优雅的使用rabbitmq

RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NETdeveloper有必要学习和了解这一工具。消息队列的使用场景大概有3种:1、系统集成,分布式系统的设计。各种子系统通过消息来对接,这种... 查看详情

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

】如何使用具有ES6标准的vuejs转换以下JavaScript逻辑【英文标题】:HowtoconvertthefollowingJavaScriptlogicusingvuejswithES6standards【发布时间】:2021-03-2010:38:49【问题描述】:我有一个JavaScript文件,我希望使用具有ES6标准的Vuejs来实现相同的... 查看详情

javascript在url#vuejs中使用没有哈希的vue-router(代码片段)

查看详情

优雅的创建一个javascript库(代码片段)

...JS库。在我们深入之前,我做了两点假设:你知道简单的JavaScript或C语言。你不打算使用jQuery。通常情况下,一个JavaScript库不需要任何依赖。首先,我遇到了第一个麻烦,即如何正确的看待一个JavaScript库。在C/C++中,一个库是功... 查看详情

如何使用 Laravel 在 VueJS 中赋值?

】如何使用Laravel在VueJS中赋值?【英文标题】:HowtoassignvalueinVueJSwithLaravel?【发布时间】:2020-08-2418:31:03【问题描述】:你如何像这样分配laravel值auth-&gt;()-&gt;user()-&gt;first_name在这个vuejs文本字段上<inputv-model="user.first_n... 查看详情

如何在 Laravel Blade 中使用 Vuejs

】如何在LaravelBlade中使用Vuejs【英文标题】:HowtoUseVuejsonLaravelblade【发布时间】:2020-08-1805:18:15【问题描述】:大家,我想用laravel和vuejs做一个宿舍管理系统,但是我不知道如何显示我的数据,而不是“welcome.blade.php”文件,而... 查看详情