关于Vue页面调用第三方JS+JQ时无法调用页面方法与data

一、
在使用vue开发的过程中难免要整合第三方js或者jq。
但是整合后的js与jq无法使用vue页面里面的方法与data。
时常发生明明在同一个vue页面里面却无法调用到方法属性。
其实这是你的调用方式不对。
我遇到过的就是jquery-contextmenu的右击事件问题
这是我们要付给右击事件的操作,selector是id,items是右击事件 触发的方法在下面(这里的callback回调函数,方法.call(本身的this,参数S)的意思是:在这个方法里调用其他对象的方法,以其他对象替代本身对象)
关于Vue页面调用第三方JS+JQ时无法调用页面方法与data_第1张图片
二、
这是触发事件的定义在data里面定义箭头函数,然后传给上图的方法里
关于Vue页面调用第三方JS+JQ时无法调用页面方法与data_第2张图片

然后我们来看一下效果,当我点击添加节点可以运行但是单击添加子节点报错了。这是因为函数创建了自己的this,所以无法获取到我们想要的。而箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。所以能访问到我们所定义的属性值。
关于Vue页面调用第三方JS+JQ时无法调用页面方法与data_第3张图片
三、
触发方法调用不能使用function(){}
需要使用()=>{}的方式,这个ES6特有的写法。es6 箭头函数不会有新的作用域
如果你是在第三方js中要调用vue页面的data、methods的话必须先以参数的形式转过去,然后在根据参数调用。然后vue页面就是如上所述的那种写法。

箭头函数文档

你可能感兴趣的:(关于Vue页面调用第三方JS+JQ时无法调用页面方法与data)