亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:143日期:2023-05-17 10:36:19

問題描述

一個公共方法,在.vue文件中怎么使用呢,目前試過不能直接通過方法名調用

舉個例子比如:

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

有兩個疑問:1.方法應該寫在哪里,是寫在main.js中還是另外建一個文件common.js ,import到main.js中?2.我在Login.vue文件中要怎么調用它,直接getId()是不行的,會報錯 getId is not defined

問題解答

回答1:

這個一般有幾種加載方法,具體看插件包的結構而定,但基本都是在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.vue的data中添加一行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()調用(參見上面第三種情況)

回答2:

直接在main.js中import進去就行了。

回答3:

建議學習一下ES6的module,將你的共用的方法寫成模塊,在需要調用的模塊調用,也可以寫在main.js里面:

import util from ’./util.js’;window.util = util;

然后全局調用window.util.xxx。

回答4:

我是這樣處理的,新建一個js common.js,定義你的全局變量

const commonUrl = ’http://你最帥’export default{ commonUrl}

然后你在main.js里面引入common.js

import common from ’common.js’Vue.prototype.url = common

然后你就可以在你的login.vue文件中這樣使用這個全局變量

this.url.commonUrl`

回答5:

寫在另外一個文件, 作為工具類, 在別的任何地方, 不限于.vue文件都可以引入.(util.js)

export const getId = (selector) { return document.getElementById(selector)}export const getTag = (tagName) { // 其他的工具類 return document.getElementsByTagName(tagName)}

(login.vue)

<style></style><template></template><script>import { getId } from './util.js'export default { mounted () {getId('targetId')) }}</script>回答6:

1.新建一個common.js寫如下:(function(win, undefined) {

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

})(window);

2.引入main.jsimport './common.js'

3.在任何.vue文件里面都可以調用<script>export default{

created(){ getId(selector);}

}</script>

回答7:

就像@rehapun 回答的那樣做的方式挺好的,我平時就是這樣用的,另外我在補充下,不用擔心重復引用導致打包體積變大,在webpack打包時可以使用CommonsChunkPlugin抽取一個公共的 vendor.js。

回答8:

首先引用你定義的js文件import ’文件的位置’,

<script> export default {data() { // 這里面是存放數據的 return{}},methods:{ // 這里就是使用你定義的方法 getId('參數');} }</script>

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 黄色三级在线播放 | 九九99九九视频在线观看 | 女人被狂躁的视频免费一一 | 亚洲天堂色网站 | 亚洲一区视频在线播放 | 亚洲国产欧美日韩第一香蕉 | 欧美大片国产在线永久播放 | 激情五月色综合亚洲小说 | 大桥未久日韩欧美亚洲国产 | 欧美成人手机在线视频 | 亚洲国产综合专区在线播一一 | 午夜毛片视频高清不卡免费 | huangse网站免费| 欧美精品一区二区三区在线 | 青草视频在线观看免费视频 | 人妖三人交69欧美 | 一级成人毛片免费观看欧美 | 国产美女精品在线观看 | 亚洲精品久久午夜香蕉 | aa级毛片毛片免费观看久 | 国产乱弄免费视频观看 | 一男一女的一级毛片 | 青草免费观看 | 日韩一卡二卡三卡 | 亚洲欧美日韩一区二区 | 成年人免费黄色 | 在线观看一区 | 精品视频在线观看一区二区 | 波多久久夜色精品国产 | 国产成人综合怡春院精品 | 久久草在线视频免费 | 国产成人久久综合热 | 国产精品东北一极毛片 | 中文字幕日韩精品亚洲七区 | 1769国产精品一区2区 | 香蕉视频99 | 日韩电影中文字幕 | 香蕉大黄香蕉在线观看 | 黄色三级三级三级 | 性感美女香蕉视频 | 成人精品视频一区二区三区尤物 |