怎样在Vue.js中使用jquery插件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样在Vue.js中使用jquery插件相关的知识,希望对你有一定的参考价值。

安装 jQuery 和 cropper.js

# install jQuery & cropper
$ npm install jquery cropper --save

为jquery和Vue自定义指令配置webpack

为webpack配置添加jquery和Vue自定义指令的映射。

通常webpack已经引入了完整的jquery版本,但还是建议再一次引入一下。

您可以看到Vue的webpack模板已经添加到组件的文件夹中。我通常会添加很多其他文件夹像自定义指令,mixin等等。在这个例子中,我们只添加了自定义指令。

这将帮助我们引入依赖关系而无需知道其确切的路径。这也是有益的在你重构你的应用的时候。你也并不需要管理相对路径。

把下面高亮部分添加到build/webpack.base.conf文件中。

resolve:
extensions: [\'\', \'.js\', \'.vue\'],
fallback: [path.join(__dirname, \'../node_modules\')],
alias:
\'src\': path.resolve(__dirname, \'../src\'),
\'assets\': path.resolve(__dirname, \'../src/assets\'),
\'components\': path.resolve(__dirname, \'../src/components\'),
\'jquery\': path.resolve(__dirname, \'../node_modules/jquery/src/jquery\'),
\'directives\': path.resolve(__dirname, \'../src/directives\')

,
参考技术A 在Vue.js中使用jquery插件的方法:
方法一:使用plugins数组把jquery插件声明为全局的资源就可以使用了,代码如下:

plugins: [
new webpack.ProvidePlugin(
$: 'jquery',
jquery: 'jquery',
'window.jQuery': 'jquery',
jQuery: 'jquery'
)
]
方法二:使用expose 加载器来加载需要的jquery插件,代码如下:

import 'expose?$!expose?jQuery!jquery'
参考技术B 基于jquery封装的一个js分页代码:

(function ($)
var PageFunc = function PageFunc()
$.PageFunc = function (Total, PageSize, curPageNum, FunUrl)
if (PageSize == "" || PageSize == null || PageSize == undefined)
PageSize = 10;

if (curPageNum == "" || curPageNum == null || curPageNum == undefined)
curPageNum = 1;

//计算总页数
Total = parseInt(Total); //总记录数
PageSize = parseInt(PageSize); //每页显示数
curPageNum = parseInt(curPageNum); //当前页
//总页数
var AllPage = Math.floor(Total / PageSize);
if (Total % PageSize != 0)
AllPage++;

var navhtml = "";
if (curPageNum <= 0)
curPageNum = 1;
if (AllPage > 1)
if (curPageNum != 1)
//处理首页连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('1')\" >|<</a></span> ";

if (curPageNum > 1)
//处理上一页的连接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (curPageNum - 1) + "')\" ><<</a></span> ";

else
navHtml += "<span class=\"disabled\"><<</span> ";

var currint = 5;
for (var i = 0; i <= 10; i++)
//一共最多显示10个页码,前面5个,后面5个
if ((curPageNum + i - currint) >= 1 && (curPageNum + i - currint) <= AllPage)
if (currint == i)
//当前页处理
navHtml += "<span lass=\"current\">[" + curPageNum + "]</span> ";

else
//一般页处理
var n = curPageNum + i - currint;
navHtml += "<a href=\"javascript:" + FunUrl + "('" + (parseInt(n)) + "')\">" + n + "</a> ";


if (curPageNum < AllPage)
//处理下一页的链接
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + (parseInt(curPageNum) + 1) + "')\">>></a></span> ";

else
navHtml += "<span class=\"disabled\">>></span> ";

if (curPageNum != AllPage)
navHtml += "<span><a href=\"javascript:" + FunUrl + "('" + AllPage + "')\" >>|</a></span> ";


navHtml += "<span>[" + curPageNum + "/" + AllPage + "]</span> ";
return navHtml;
;
)(jQuery);

下边是调用方法:

function QueryList(curpage)
if (curpage == "" || curpage == null || curpage == undefined)
curpage = 1;

var pagesize = 10;
var Countys = $("#Countys").val(); //县
var enddate = $("#enddate").val(); //结束时间
var begindate = $("#begindate").val(); //开始时间
$.ajax(
url: "",
type: "POST",
data: "Countys": Countys, "enddate": enddate, "begindate": begindate, "curpage": curpage, "pagesize": pagesize ,
dataType: "json",
error: function (xhr, status, errMsg) window.location.href = "/CommonError/index/" + errMsg.code + "?txt=" + errMsg.msg; ,
success: function (mydata)
var str = "";
$.each(mydata.Tdata, function (i, item)
str += "<tr>"
str += "<td>" + $.FormatDateTime(item.ControlBeginTime, false) + "</td>";
str += "<td>" + $.FormatDateTime(item.ControlEndTime, false) + "</td>";
str += "<td>" + item.Name + "</td>";
str += "<td>" + item.PlateNumber + "</td>";
str += "<td>" + item.ControlDept + "</td>";
if (item.IsAll == "0")
str += "<td>全县布控</td>";

else
str += "<td>按卡口点布控</td>";

str += "<td>" + item.IsAll == "0" ? "全县布控" : "按卡口点布控" + "</td>";
str += "<td>修改</td>";
str += "<td>删除</td>";
str += "<td>详细</td>";
str + "</tr>";
);
$("#srh_rslt tbody").html(str);
$(".pagination").html($.PageFunc(mydata.total, pagesize, curpage, "QueryList"));

);

以上是关于怎样在Vue.js中使用jquery插件的主要内容,如果未能解决你的问题,请参考以下文章

怎样在Vue.js中使用jquery插件

[译]怎样在Vue.js中使用jquery插件

如何编写一个 Vue JS 内嵌组件

在 Vue.js 单文件组件中使用 jQuery 插件

jQuer插件满屏气泡飘落动画效果

像 vue.js 组件一样可排序(没有 npm / webpack)或在 vue 区域内使用 jQuery 插件