vueカスタム移動端touchイベント、クリック、スライド、長押しイベント


使用方法:
**HTML**
{{ name }}
**js** kim=new Vue({ el:"#app", data:{ name:" " }, methods:{ vueTouch:function(s,e){ this.name=s.name; } } });

jsコアコンテンツ
function vueTouch(el,binding,type){
	var _this=this;
	this.obj=el;
	this.binding=binding;
	this.touchType=type;
	this.vueTouches={x:0,y:0};
	this.vueMoves=true;
	this.vueLeave=true;
	this.longTouch=true;
	this.vueCallBack=typeof(binding.value)=="object"?binding.value.fn:binding.value;
	this.obj.addEventListener("touchstart",function(e){
		_this.start(e);
	},false);
	this.obj.addEventListener("touchend",function(e){
		_this.end(e);
	},false);
	this.obj.addEventListener("touchmove",function(e){
		_this.move(e);
	},false);
};
vueTouch.prototype={
	start:function(e){
		this.vueMoves=true;
		this.vueLeave=true;
		this.longTouch=true;
		this.vueTouches={x:e.changedTouches[0].pageX,y:e.changedTouches[0].pageY};
		this.time=setTimeout(function(){
			if(this.vueLeave&&this.vueMoves){
				this.touchType=="longtap"&&this.vueCallBack(this.binding.value,e);
				this.longTouch=false;
			};
		}.bind(this),1000);
	},
	end:function(e){
		var disX=e.changedTouches[0].pageX-this.vueTouches.x;
		var disY=e.changedTouches[0].pageY-this.vueTouches.y;
		clearTimeout(this.time);
		if(Math.abs(disX)>10||Math.abs(disY)>100){
			this.touchType=="swipe"&&this.vueCallBack(this.binding.value,e);
			if(Math.abs(disX)>Math.abs(disY)){
				if(disX>10){
					this.touchType=="swiperight"&&this.vueCallBack(this.binding.value,e);
				};
				if(disX10){
					this.touchType=="swipedown"&&this.vueCallBack(this.binding.value,e);
				};
				if(disY

2018-03-08友人からバグ「v-forサイクルライフサイクル後にデータが更新されたなどの新しい値が得られない」と提案された.
この問題は、v−forのオンサイト多重化メカニズムに起因し、すなわち多重化可能なdomは繰り返しレンダリングされず、公式に与えられた方法は、各項目に一意のkey属性を提供する必要がある.理想的なkey値は、各項目に存在し、唯一のidである.

私の解決策はdirectiveのフック関数パラメータにvnodeがあります.これは仮想domノードで、vnodeにあげます.keyはランダムidを与え、domリフレッシュを強制する.
Vue.directive("tap",{
	bind:function(el,binding,vnode){
		vnode.key = randomString()//randomString          
		new vueTouch(el,binding,"tap");
	}
});

最新バージョンはGitHubで更新されましたhttps://github.com/904790204/vue-touch
最近ずっと忙しくて、最新の用法はすでに更新して、直接npmからkim-vue-touchをダウンロードしてインストールすることができて、パラメータの方式も修正して、何か問題があったら直接私に連絡して、qq:904790204