关闭

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十四)在项目中使用 jQuery

标签: jqueryvuewebpackaxiosimport
4257人阅读 评论(26) 收藏 举报
分类:

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十四)在项目中使用 jQuery

前情回顾

在上一篇博文中,我们讲到了,如何在 vue 项目中 使用百度的 UEditor 富文本编辑器,详情点击《Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(十三)集成 UEditor 百度富文本编辑器》。相信大家对引用这种非 npm 的包有了一定的认识。

很多人学习 js 都是从 jQuery 开始的,我也不例外。有时候进行一些操作的时候,还是感觉 jQuery 比较好用,那么,我们如何在项目中使用 jQuery 呢?这篇博文带你实践。

引用 jQuery 文件

首先呢,jQuery 是提供了 npm 的安装包的。我们的 vue-cli 脚手架,也是支持引入的。不过设置比较麻烦,如果你对使用这种方法比较敢兴趣,可以直接参考下面的内容:

  1. How to include jQuery into Vue.js
  2. How to use a jQuery plugin inside Vue

虽然资料是英文的,但是阅读应该不成问题。

好,我们不说这种方式引入 jQuery 而是引用文件的方式引用。

首先,我们下载 jQuery 文件到我们的 /static/js/ 目录。正好我本地有一个 jquery-1.8.3.js,我就放了这么一个 jQuery 文件到我们的演示项目里。

然后,在 /src/main.js 合适位置插入下面的代码:

// import 'jquery'
import '../static/js/jquery-1.8.3.js'

jQuery 文件路径名,请保持和你自己的一致。

好,这样,我们就引入成功了。

经过测试,这个方法不适用于高版本的 jquery 高版本请直接使用下面第二种方法引入。

补充第二个方法

上面,我们是在 main.js 文件中引用 jQuery 其实,我们还可以在 /index.html 直接引用。

我们编辑 /index.htmlhead 区域插入下面的代码

<script src="static/js/jquery-1.8.3.js"></script>

直接这样引用,就可以在项目中愉快的写 jquery 代码了。

so,明白我为什么不用 npm 安装那种啰嗦的方法了吧~,其实,更多的东西,我们都可以使用这两种方法来引入。因为,这样引入,可以加快打包速度。最佳状态是,打包只打包我们自己的代码。
不过在正常开发来说,需要时不时的安装一个包,这时候,还是 npm 的包管理来得非常方便。但对于一个成熟项目的各种优化来说,这里就可以不断的尝试优化了。
这里,我只是提供了这个思路,我并不推荐任何东西都这么做,尤其是开发阶段!

搞一个文件测试一下 jQuery 是否可用

新建 /src/page/jq.vue 文件,录入下面的内容

<template>
  <div class="love">
    <p>这里是初始文字</p>
    <button @click="testJQ">看看 jquery 有没有工作</button>
  </div>
</template>
<script>
export default {
  methods: {
    testJQ () {
      $('.love p').html('jquery 工作正常!')
    }
  }
}
</script>

这段代码逻辑非常简单,就是点击的时候改变 p 的文字。

将路由配置为 /jq,具体操作不表,不会看前面的文章,或者我的 github 源码。

好,如果你的编辑器配置了代码审查的话,应该报错了。而浏览器里面,也是报错的。

去掉 eslint 报错 ‘$’ is not defined

虽然引用了 jQuery 但是你真正去写的时候,会报这个错误。我们首先需要关闭掉这个错误。

关闭有两种方法,一种是临时关闭,一种是永久关闭。我这里提供永久关闭的方法。

我们编辑 /.eslintrc.js 文件

  env: {
    browser: true,
    jquery: true
  },

env 区间里面加上 jquery: true 参数即可。

然后我们重新跑一下系统 npm run dev 就应该可以看到我们想要的效果了。

jquery 效果演示

更加复杂的操作,我没有尝试。但是我可以肯定,绝对没有原生写那样顺畅。还必须依赖 vue 的一些方法什么的。我的建议是,一般不使用 jQuery,如果使用的话,请确保在可控的范围内。否则,你算是给项目埋大坑了。

如果文章由于我学识浅薄,导致您发现有严重谬误的地方,请一定在评论中指出,我会在第一时间修正我的博文,以避免误人子弟。

本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。

2017年10月19日补充

看到评论中反应使用1.10以上版本的 jquery 会始终报错。另外非常感谢有朋友给出了别人的解决方法。

我今天测试了一下,确实发现这个问题。但是我想解决方法用不着那么复杂。直接在 index.html 使用如下代码引入 jquery 然后配置一下 eslint ,然后就在项目中使用就可以了。

<script src="static/js/jquery-3.2.1.min.js"></script>

就是使用第一节中我说的第二个方法引入。

github 代码已更新。

如有其他问题,欢迎继续给我评论中留言。

6
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Vue2+VueRouter2+webpack+Axios 构建项目实战(七)重构API文件为使用axios

Vue2+VueRouter2+webpack+Axios 构建项目实战(七)重构API文件为使用axios前言我们在前面的教程Vue2+VueRouter2+webpack 构建项目实战(四)接通a...
  • FungLeo
  • FungLeo
  • 2017-05-10 17:55
  • 3933

Vue2+VueRouter2+webpack 构建项目实战(一)准备工作

Vue2+VueRouter2+webpack 构建项目实战(一)准备工作之前写的博客没有采用打包工具,而是直接引用js的方式来做的。这种方式很扯淡,也因此,我写了三篇博客之后就没有再写了。通过几个月...
  • FungLeo
  • FungLeo
  • 2016-11-15 14:43
  • 41368

Vue2+VueRouter2+webpack 构建项目实战(五)配置子路由

Vue2+VueRouter2+webpack 构建项目实战(五)配置子路由前情回顾《Vue2+VueRouter2+webpack 构建项目实战(一)准备工作》《Vue2+VueRouter2+we...
  • FungLeo
  • FungLeo
  • 2016-11-18 10:14
  • 20027

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述

前言 2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。 本来写这一系列的博文只是为了给自己看的,但...
  • kchangfu
  • kchangfu
  • 2017-12-02 22:01
  • 95

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(一)基础知识概述

前言 2016年,我写了一系列的 VUE 入门教程,当时写这一系列博文的时候,我也只是一个菜鸟,甚至在写的过程中关闭了代码审查,否则通不过校验。 本来写这一系列的博文只是为了给自己看的,但没想到的...
  • mck477
  • mck477
  • 2017-11-16 15:24
  • 93

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来

前情回顾 在上一篇博文《Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(八)渲染一个列表出来先》中,我们已经成功的把一个列表给渲染出来了。我们从文章中留下...
  • kchangfu
  • kchangfu
  • 2017-12-02 22:19
  • 106

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(七)初识 *.vue 文件

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(七)初识 *.vue 文件前情回顾在上一篇文章《Vue2+VueRouter2+Webpack+Axios 构建...
  • FungLeo
  • FungLeo
  • 2017-08-26 16:14
  • 8662

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(七)初识 *.vue 文件

前情回顾 在上一篇文章《Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地》中,我们顺利的将接口代理到了本地。需要说...
  • kchangfu
  • kchangfu
  • 2017-12-02 22:16
  • 69

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地前情回顾在上一篇博文《Vue2+VueRouter2+Webpack+A...
  • FungLeo
  • FungLeo
  • 2017-08-26 15:27
  • 10209

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(六)将接口用 webpack 代理到本地

前情回顾 在上一篇博文《Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(五)配置 Axios api 接口调用文件》中,我们已经非常顺利的调用到了 cno...
  • kchangfu
  • kchangfu
  • 2017-12-02 22:14
  • 79
    个人资料
    • 访问:1113755次
    • 积分:12072
    • 等级:
    • 排名:第1440名
    • 原创:213篇
    • 转载:39篇
    • 译文:1篇
    • 评论:841条
    站内搜索
    博客专栏
    文章分类
    友情链接
    最新评论