javascript - vue中怎么使用原生js插件

查看:638
本文介绍了javascript - vue中怎么使用原生js插件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

一个公共方法,在.vue文件中怎么使用呢,目前试过不能直接通过方法名调用

举个例子比如:

function getId(selector) {
    return document.getElementById(selector);
}

有两个疑问:
1.方法应该写在哪里,是写在main.js中还是另外建一个文件common.js ,import到main.js中?
2.我在Login.vue文件中要怎么调用它,直接getId()是不行的,会报错 getId is not defined

解决方案

这个一般有几种加载方法,具体看插件包的结构而定,但基本都是在main.js或者App.vue里添加加载代码。

  • 如果插件包是纯粹的JS、CSS文件,并且暴露了全局插件变量,则只要import 'xxxxxx'就可以了,其中xxxxxx是JS或者CSS的路径。此类插件如jQuery和Bootstrap。

  • 但是需要注意,jQuery的JS文件经过import '....'加载之后不能直接使用,需要在打包脚本配置webpack.base.conf.js中添加如下配置(部分配置省略):

module.exports = {
    entry: { ... },
    output: { ... },
    resolve: { ... },
    ...
    plugins: [
        new webpack.ProvidePlugin({
          jQuery: "jquery",
          $: "jquery"
        })
    ]
};

另外注意在此配置的头部添加var webpack = require('webpack'),防止报错webpack未定义。

  • 如果是插件已经模块化了,暴露了对象或者方法,但是无法跨模块使用(比如通过npm安装到项目的bootbox插件),我是通过在框架App.vue里添加import bootbox from 'bootbox/bootbox.js',然后在App.vuedata中添加一行bootbox: bootbox,在其他Vue页面中通过this.$root.bootbox调用bootbox插件的。

  • 还有一种插件,不能通过import的方法加载,需要使用var xxx = require('xxx')的方式加载。这种插件一般是作为Vue框架的插件来用的,比如Vue-filter。这种一般是在main.js里添加var vueFilter = require('vue-filter')加载,然后用Vue.use(vueFilter)使vue-filter在Vue应用中注册。

  • 按照你的描述,这个方法另写一个文件和直接写main.js里实现起来是没有区别的。建议在App.vue里写这个方法,然后加到methods里去,在需要调用的地方使用this.$root.getId()调用(参见上面第三种情况)

这篇关于javascript - vue中怎么使用原生js插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆