Javascript 防止在VueJS生成的代码中执行jQuery

Javascript 防止在VueJS生成的代码中执行jQuery,javascript,jquery,vue.js,vuejs2,Javascript,Jquery,Vue.js,Vuejs2,我正在用VueJS替换jQuery,但我的旧jQuery代码仍在VueJS生成的代码上执行 有没有一种方法可以防止jQuery代码在VueJS代码上执行 我不能简单地在VueJS页面上禁用jQuery,因为页面的某些部分仍然需要jQuery 我想我应该检查一个HTML是否有data-v-xxxxx属性,然后阻止在其上执行jQuery 我找不到阻止jQuery在某些标记上执行的方法 这是可行的还是我需要找到另一种方法 如果不查看你的应用程序,就很难提出解决方案。无论如何 这里有一个镜头 假设您的旧

我正在用VueJS替换jQuery,但我的旧jQuery代码仍在VueJS生成的代码上执行

有没有一种方法可以防止jQuery代码在VueJS代码上执行

我不能简单地在VueJS页面上禁用jQuery,因为页面的某些部分仍然需要jQuery

我想我应该检查一个HTML是否有
data-v-xxxxx
属性,然后阻止在其上执行jQuery

我找不到阻止jQuery在某些标记上执行的方法


这是可行的还是我需要找到另一种方法

如果不查看你的应用程序,就很难提出解决方案。无论如何 这里有一个镜头

假设您的旧HTML/jQuery的结构如下:

    <div class="mainDiv">
        <header>
        <!-- Some complicated HTML for the header !-->
        </header>

        <!-- Rest of the app !-->
        <div class="someContainer"></div>

    </div>
你能做的就是传递一个新的版本,尽管我不推荐 关闭已预先选择正确根的jQuery对象

例如,如果您的应用程序有一些
$(“选择器”)。请在应用程序中的任何位置单击()
然后,您可以将全局
$
别名为一个新函数:

    jQuery.noConflict(); // will restore the old $ global var
    const $root = jQuery(".someContainer");
    // very basic and incomplete proposal
    const $ = function (...args) {
        return $root.find.apply($root, args);
    };
    window.$ = $; // make it globally available.

什么意思?jQuery不会自动执行,除非您选择一个元素或启用一个插件在您的页面上执行内容。是的,我知道,但我有一些全局代码,可以修改某些标记的状态或内容。我试图找到一个全局解决方案,而不是在每个全局代码上添加一个条件。我认为没有办法做到这一点。您可以向为vue实例设置的每个根元素添加一个类(与
el:'#element'
一起使用的一个类)。像
vuejs这样的类,在每个全局函数中,在选择器中添加一个
。not('.vuejs,.vuejs*')
    jQuery.noConflict(); // will restore the old $ global var
    const $root = jQuery(".someContainer");
    // very basic and incomplete proposal
    const $ = function (...args) {
        return $root.find.apply($root, args);
    };
    window.$ = $; // make it globally available.