国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

javascript - vue中怎麼使用原生js插件
迷茫
迷茫 2017-06-26 10:57:23
0
8
1912

一個(gè)公共方法,在.vue檔案中怎麼使用呢,目前試過(guò)不能直接透過(guò)方法名稱呼叫

舉個(gè)例子比如:

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

有兩個(gè)疑問(wèn):
1.方法應(yīng)該寫在哪裡,是寫在main.js中還是另外建一個(gè)檔案common.js ,import到main.js中?
2.我在Login.vue檔案中要怎麼呼叫它,直接getId()是不行的,會(huì)報(bào)錯(cuò) getId is not defined

迷茫
迷茫

業(yè)精于勤,荒于嬉;行成于思,毀于隨。

全部回覆(8)
學(xué)習(xí)ing

這個(gè)一般有幾種載入方法,具體看插件包的結(jié)構(gòu)而定,但基本上都是在main.jsApp.vue裡加入載入程式碼。

  • 如果插件包是純粹??的JS、CSS文件,並且暴露了全局插件變量,則只要import 'xxxxxx'就可以了,其中xxxxxx是JS或者CSS的路徑。此類插件如jQuery和Bootstrap。

  • 但是需要注意,jQuery的JS檔案經(jīng)過(guò)import '....'載入之後不能直接使用,需要在打包腳本配置webpack.base.conf.js中加入以下設(shè)定(部分設(shè)定省略):

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

另外注意在此配置的頭部添加var webpack = require('webpack'),防止報(bào)錯(cuò)webpack未定義。

  • 如果是插件已經(jīng)模組化了,暴露了物件或方法,但是無(wú)法跨模組使用(例如透過(guò)npm安裝到專案的bootbox插件),我是透過(guò)在框架App.vue裡添加插件),我是透過(guò)在框架App.vue裡添加插件),我是透過(guò)在框架App.vue裡添加插件),我是透過(guò)在框架App.vue裡添加外掛import bootbox from 'bootbox/bootbox.js'

    ,然後在
  • App.vue
  • data中加入一行bootbox: bootbox,在其他Vue頁(yè)面中透過(guò).$root.bootbox 。 還有一種插件,不能透過(guò)import的方法加載,需要使用var xxx = require('xxx')的方式加載。這種插件一般是作為Vue框架的插件來(lái)用的,例如Vue-filter。這種一般是在

    main.js
  • 裡添加
  • var vueFilter = require('vue-filter')

    加載,然後用Vue.use(vueFilter)使vue-filter在Vue應(yīng)用中註冊(cè)。 依照你的描述,這個(gè)方法另寫一個(gè)檔案和直接寫

    main.js
  • 裡實(shí)作起來(lái)是沒有差別的。建議在
App.vue??裡寫這個(gè)方法,然後加到??methods??裡去,在需要呼叫的地方使用??this.$root.getId()??呼叫(請(qǐng)參閱上面第三種情況)???? ??
某草草

直接在main.jsimport進(jìn)去就行了。

過(guò)去多啦不再A夢(mèng)

建議學(xué)習(xí)ES6的module,將你的共用的方法寫成模組,在需要調(diào)用的模組調(diào)用,也可以寫在main.js裡面:

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

然後全域呼叫window.util.xxx。

淡淡煙草味

我是這樣處理的,新建一個(gè)js common.js,定義你的全域變數(shù)

const commonUrl = 'http://你最帥'

export default{
    commonUrl
}

然後你在main.js裡面引入common.js

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

然後你就可以在你的login.vue檔案中這樣使用這個(gè)全域變數(shù)

this.url.commonUrl`

世界只因有你

寫在另外一個(gè)文件, 作為工具類, 在別的任何地方, 不限於.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>
世界只因有你

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

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

})(window);

2.引入main.js
import "./common.js"

3.在任何.vue檔案裡面都可以呼叫

created(){
    getId(selector);
}

}

巴扎黑

就像@rehapun 回答的那樣做的方式挺好的,我平時(shí)就是這樣用的,另外我在補(bǔ)充下,不用擔(dān)心重複引用導(dǎo)致打包體積變大,在webpack打包時(shí)可以使用CommonsChunkPlugin抽取一個(gè)公共的vendor .js。

為情所困

先引用你定義的js檔案import '檔案的位置',

<script>
    export default {
        data() { // 這里面是存放數(shù)據(jù)的
            return{}
        },
        methods:{ // 這里就是使用你定義的方法
            getId("參數(shù)");
        }
    }
</script>
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板