美文网首页
Vue项目中使用 zTree

Vue项目中使用 zTree

作者: Rising_life | 来源:发表于2020-07-07 13:44 被阅读0次

简介

zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 zTree 最大优点。

安装

ztree安装

npm install ztree
        或
yarn add ztree

由于 ztree 依赖 jQuery ,所以要安装 jQuery框架。

jQuery 安装

npm install jquery 
        或
yarn add jquery 

引入

在 main.js中引入插件

import $ from "jquery";
import "ztree";
import "ztree/css/metroStyle/metroStyle.css";

遇到问题

项目启动后出现错误:jQuery is not defined


jQuery is not defined

因为以前使用 <script> 标签来加载 jquery 的,并且会将其挂载到全局中,所以在执行 jquery.ztree.core.js 时能正常地获取到 jQuery 。而在 vue 项目中,经过 webpack 打包后,在 main.js 中导入的 $ 和 jquery.ztree.core.js 是各自处在不同的上下文环境的,所以就不能找到 jQuery 了。

修改 webpack 配置

创建 vue.config.js 配置文件

// vue.config.js
const webpack = require('webpack')
module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.ProvidePlugin({
        $: 'jquery',
        jquery: 'jquery',
        'window.jQuery': 'jquery',
        jQuery: 'jquery'
      })
    ]
  },
}

上面代码使用了 webpack 的 ProvidePlugin 插件,这个插件在加载某个模块时,如果遇到了未定义的并且在配置文件中配置了的变量,比如上面代码看到的 $、jquery、jQuery、window.jQuery,就会自动导入对应的依赖项,比如上面代码中的 jquery 模块。
同时,也不需要再在 main.js 中引入jquery 了。
重新启动项目后,jQuery is not defined 错误消失。

遇到新的问题

写个demo运行后,编译出错:'$' is not defined

<template>
  <div class="app-container">
    <ul
      id="treeDemo"
      class="ztree"
    />
  </div>
</template>

<script>
export default {
  name: 'ZTree',
  mounted() {
    $.fn.zTree.init($('#treeDemo'), {}, [
      {
        name: 'test1',
        open: true,
        children: [{ name: 'test1_1' }, { name: 'test1_2' }]
      },
      {
        name: 'test2',
        open: true,
        children: [{ name: 'test2_1' }, { name: 'test2_2' }]
      }
    ])
  }
}
</script>
'$' is not defined

这是 eslint 的 no-undef 规则导致的,这条规则禁用未声明的变量

修改 eslint 配置

找到 .eslintrc.js 文件,在 env 选项中添加 jquery:true。

// .eslintrc.js
module.exports = {
  env: {
    jquery: true
  }
}

env 选项定义了预定义的全局变量,添加了上述代码,那么 eslint 就会认为 jquery 是全局变量而不是一个未定义的变量了。
再次重新启动项目,就可以看到正常加载的 zTree 树形组件了

相关文章

  • Vue项目中使用 zTree

    简介 zTree 是一个依靠 jQuery 实现的多功能 “树插件”。优异的性能、灵活的配置、多种功能的组合是 z...

  • 手写树形折叠结构

    参考留念,实用时考虑到有复杂功能比如模糊搜索等,请使用zTree插件 在vue中应用: html: {...

  • 那些优秀的 JavaScript 开源项目

    1. 项目名称:jQuery 树插件 zTree v3 系列 (GVP项目) 项目简介: zTree 是一个依靠 ...

  • vue 与 vue-router 在 webpack 中的使用

    使用方式 在项目中安装 vuenpm i vue -S 在 webpack 中推荐我们使用 .vue 组件模板文件...

  • zTree.js的使用

    zTree.js的使用 zTree学习笔记一:实现checkbox、全选、取消全选功能

  • 创建 ZTree

    使用标准json数据构造ztree 4.2使用简单json数据构造ztree(建议) 发送ajax请求获取菜单数据...

  • vue vue-style-loader !css-loader

    vue框架中,使用webpack打包vue项目,在执行npm run start的时候 出现如下错误: !!vue...

  • vueDemo-1

    vue打包 使用vue-cli搭建的项目中,是使用webpack进行打包,在使用vue init 进行初始化项目...

  • vue入门:使用vue独立版本构建vue项目

    vue前端架构,在上一篇vue入门:使用vue-cli新建vue项目中,我们除了使用vue-cli进行构建项目,除...

  • zTree.js

    zTree简介 树形控件的使用是应用开发过程中不可少的,zTree是一个依靠jQuery实现的多功能“树插件”,优...

网友评论

      本文标题:Vue项目中使用 zTree

      本文链接:https://www.haomeiwen.com/subject/vtpaqktx.html