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

javascript - L'utilisation de jquery dans Vue échoue. Peut-il être utilisé lorsque jquery est introduit, mais le plug-in qui introduit jquery n'est pas défini? ?
漂亮男人
漂亮男人 2017-05-18 10:59:43
0
6
1100

L'utilisation de jquery dans vue a échoué. Il peut être utilisé en introduisant jquery, mais le plug-in qui introduit jquery n'est pas défini
Mon idée est que puisque l'introduction de l'importation n'est pas prise en charge, puis-je changer le code source. pour supporter la modularisation ?

漂亮男人
漂亮男人

répondre à tous(6)
黃舟

J'ai rencontré le même problème que l'affiche originale. J'ai cité le plug-in tiers de jquery jquery.mockjax.js, puis j'ai appelé require('./assets/jquery.mockjax.js') dans main.js. , lorsque $ appara?t, il n'est pas défini. require('./assets/jquery.mockjax.js'),出現(xiàn)$此時是undefined。

我是這樣解決的:
通過npm install的方式去安裝的jquery-mockjax,此時發(fā)現(xiàn)可以用了,$也有定義了。

然后我嘗試了找了一下兩者的不同:
首先通過npm install安裝的jquery-mockjax 的源碼和我之前直接引入的js文件是相同的。

(function(root, factory) {
    'use strict';
    console.log(arguments);
    console.log('root', root);
    // AMDJS module definition
    if ( typeof define === 'function' && define.amd && define.amd.jQuery ) {
        console.log('this is in amdjs module definition');
        define(['jquery'], function($) {
            return factory($, root);
        });

    // CommonJS module definition
    } else if ( typeof exports === 'object' && module.exports) {
        console.log('this is CommonJs module definition');

        // NOTE: To use Mockjax as a Node module you MUST provide the factory with
        // a valid version of jQuery and a window object (the global scope):
        // var mockjax = require('jquery.mockjax')(jQuery, window);

        module.exports = factory;

    // Global jQuery in web browsers
    } else {
        console.log('this is global jquery in web browsers');
        return factory(root.jQuery || root.$, root);
    }
}(this, function($, window) {
    'use strict';

這是源碼部分,采用UMD的方式。

方式一:
通過require('./assets/jquery.mockjax.js')的方式去引入該文件,webpack編譯后的代碼是直接進入第三個判斷分支進行判斷,直接調(diào)用了該工廠函數(shù),webpack在處理的時候this傳入的是modules.exports對象,此時module.exports對象是找不到j(luò)query的,因此報錯。嘗試將源碼中的this改為global后,是可以解決的。網(wǎng)上也提供了不修改源碼,通過imports-loader的方式將this賦值為window。require('import-loader?this=>window!./assets/jquery.mockjax.js')
方式二:
通過require('jquery-mockjax')

Voici comment je l'ai résolu?:
J'ai installé jquery-mockjax via npm install et j'ai découvert qu'il pouvait être utilisé et que $ est également défini.

Ensuite, j'ai essayé de trouver la différence entre les deux?:
Premièrement, le code source de jquery-mockjax installé via npm install est le même que le fichier js que j'ai importé directement auparavant.

rrreee

Il s'agit de la partie code source, utilisant la méthode UMD. ?? ??Méthode 1?:
Introduire le fichier via require('./assets/jquery.mockjax.js') Le code compilé par webpack entrera directement dans la troisième branche de jugement. la fonction d'usine est directement appelée. Lorsque le webpack est en cours de traitement, cela est transmis dans l'objet modules.exports. à ce stade, l'objet module.exports ne trouve pas jquery, une erreur est donc signalée. Cela peut être résolu après avoir essayé de changer cela dans le code source en global. Il existe également une méthode sur Internet qui ne modifie pas le code source et l'attribue à la fenêtre via le chargeur d'importation. require('import-loader?this=>window!./assets/jquery.mockjax.js')
Méthode?2?:
Passer require('jquery-mockjax '), le fichier compilé par webpack entre directement dans la deuxième branche. En lisant le fichier compilé, on constate que webpack définit directement la condition de jugement de la deuxième branche sur true, qui est la méthode d'introduction par défaut de Commonjs. ce qui explique également pourquoi cette méthode ne signale pas les erreurs. ?? ??à travers cet exemple, j'espère qu'il pourra donner quelques conseils à l'affiche. Si le plug-in tiers jquery de l'affiche est également au format UMD, il est très probable qu'il s'agisse de la même erreur que celle que j'ai rencontrée. ?? ??Mais j'ai toujours eu une question, pourquoi la compilation des packages npm par webpack est-elle différente de la compilation des fichiers js directement importés ? Je n'ai pas réussi à trouver où cette partie est expliquée dans la documentation officielle ? J'espère également que le ma?tre ci-dessus pourra me donner une réponse. ??
為情所困

Ajoutez d'abord "jquery" : "^2.2.3" aux dépendances dans package.json, puis npm install

Ajoutez-le à webpack.base.conf.js

var webpack = require("webpack")

Ajouter à la fin du module.exports

plugins: [
    new webpack.optimize.CommonsChunkPlugin('common.js'),
    new webpack.ProvidePlugin({
        jQuery: "jquery",
        $: "jquery"
    })
]

Alors assurez-vous de npm exécuter à nouveau dev

Vous pouvez l'importer dans main.js import $ from 'jquery'

劉奇

Aucun plug-in (surtout les anciens plug-ins) ne peut être importé. Sinon, et npm ne trouve pas le téléchargement source de ce plug-in, il n'y a que deux options?:
1. où src entre en jeu

2. Modifiez vous-même le plug-in et exportez la méthode pour exposer le plug-in

小葫蘆

La raison pour laquelle le plug-in jq ne peut pas être utilisé est que lorsque le plug-in jq est introduit, le $ dans le js qui exécute ce plug-in n'a pas été défini dans la vue globale, donc la méthode est introuvable. Maintenant, je sais qu'il existe deux méthodes?:
(1)
1. Introduisez jq.js et js du plug-in jq dans index.html
2. Ajoutez la variable globale $ dans webpack.base.conf.js,

externals: {
    jquery: 'window.$'
  }

3. Dans les composants qui doivent utiliser le plug-in jq, exigez jq, var $ = require('jquery').
(2)
1.Introduisez jq.js dans index.html
2.Dans les composants qui doivent utiliser le plug-in jq, importez le js du plug-in et exigez simplement jq.

Si ?a ne marche pas, dis-le-moi encore

曾經(jīng)蠟筆沒有小新

Pourquoi êtes-vous si réticent à utiliser jq au lieu de vue?? . .

洪濤

Ce plug-in n'est conforme à aucune spécification de système modulaire, vous ne pouvez donc pas obtenir l'objet ou le constructeur de plug-in correspondant via l'importation, et ce plug-in nécessite que jQuery soit une propriété de la fenêtre (variable globale), donc il est plus difficile d'utiliser l'approche modulaire?:

import $ from 'jquery'
global.$ = global.jQuery = $
require('path/to/jquery.particleground.js')

Alors vous pourrez peut-être appeler $('#a').particleground(), c'est juste une possibilité, je ne l'ai pas testé moi-même

En fait, il devrait être possible d'utiliser un script pour introduire jquery et ce plug-in directement dans index.html Si eslint est utile, définissez global $

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal