vue 计算属性 方法 监听器 简单使用

vue简单入门

计算属性:可以传参数,set方法好像只能穿value

//计算属性传值
get:function(){
	return a
},
set:function(value){
	this.a=value;
}	

//闭包返回
test() {
 return function (index,value) {
        return this.b[index] = value;		//这种也可以传参 直接返回
	}
}

//比如要监听数组,可以用计算属性 返回你要监听的某个值的字符串拼接
computed:{
	PerCtn: function () {
	  	try {
	           var strL = "";
	             if (this.arr.length) {
	                 for (var v = 0; v < this.arr.length; v++) {
	                     strL += this.arr[v].data1.PerCtn + ",";
	                 }
	                 return strL.substring(0, strL.lastIndexOf(','));
	             }
	        } catch (err) {}
	},
}
 
watch:{
	PerCtn: {
	         handler: function (newval,oldval) {
	        	  conlose.log(newval,oldval) 
	        	  //监听后逻辑
	        	  
	              this.PerCtnfun(newval);  //调用mothods里的方法,
	         }
	},
}
methods:{
	PerCtnfun: function (value) {
	      for (var v = 0; v < this.arr.length; v++) {
	       		
	      }
	      return ...... 
	}
}

v-model: 双向绑定,可以绑定一个计算属性,绑定了可以给计算属性传值修改


	<iuput type="text" v-model="testaa(i)" ref="up1">
	testaa() {
	 return function (index) {
	 		var b[index].aa = this.$refs.up1[0]._value //是input里的value 可能要加try
	        return this.b[index].aa;
		}
	}
	
//也可以绑定一个方法
<iuput type="text" v-model="aafun(i,$event)">

//方法:
aafun: function (index,event) {
	//逻辑
	this.arr[index].aa = event.currentTarget.value;
		
	//也可以调用计算属性:
	var result = this.testaa = index; //传参
	
	return result;
}
	

@input 监听输入框

//testfun一个方法
<input type="text"  @keyup.enter="testfun" @input="testfun($event,i)">

监听器: 监听对象没问题,监听数组只能用计算属性 不然监听不到老值


watch: {
	//监听对象某个属性
 	'obj.a': {
	    handler(newval, oldval) {
	      conlise.log(newval,oldval);
	    },
    	immediate: true //立即去执行handler方法
    	deep: true //深度监听
    },
    
	//监听整个数组,不建议用
	arr:{
		 handler(newval, oldval) {
		     conlise.log(newval,oldval); //新值老值一样。
		 },
	   	deep: true //深度监听
	}
}

把json对象,数组清空:

//添加一个空数组用
var Data1 = {}, 
   for (var prop in app.arr[0].data1[0]) {
       Data1[prop] = "";
   }

axios: 基本用法:

var jsonarr = app.arr;
axios({
       method: 'post',
       url: '你的url',
       data: {
           jsonarr //后台用@RequestBody String data 接收 用gson转成对象
       }
       })
       .then(function (response) {
           success_prompt('保存成功', '1500');
       })
       .catch(function (error) {
           fail_prompt('保存失败', '1500');
       });
       



//多个并行连接
axios.all([getdata1(), getdata2()])
    .then(axios.spread(function (one, two) {
    	one.data; // 返回的数据
    	two.data;
	  	fail_prompt("成功","1500");
    })).catch(function (error) {
    	fail_prompt("失败","1500");
});


function getdata1() {
	//post会出问题不知道为啥
    return axios.get('你的url', {
            params: {
                mypars: parcode, //后台用String mypars,String pdate接收
                pdate: pardate
            } 
    });
};
function getdata2() {
    return axios.get('你的url', {params: {mypars: parcode, pdate: pardate} });
};

//springboot后台
//跨域
@RestController
@CrossOrigin(origins = "*", maxAge = -1)

### Vue.js 中计算属性监听器的用法及区别 在 Vue.js 中,计算属性(Computed Properties)和监听器(Watchers)是两个重要的特性,它们都用于处理数据的变化,但其设计初衷和使用场景存在显著差异。 #### 计算属性(Computed Properties) 计算属性是一种基于其依赖的数据动态计算结果的机制。它非常适合用于派生数据的场景,例如格式化显示内容或根据多个数据源生成新的值。计算属性具有缓存机制,只有在其依赖的数据发生变化时才会重新计算[^1]。 **特点**: - **缓存性**:计算属性的结果会被缓存,只有当依赖的数据发生改变时才会重新计算。 - **声明式语法**:通过简单的 getter 和 setter 方法定义逻辑,代码更简洁易读。 - **适用场景**:主要用于需要从现有数据派生新数据的情况。 **示例**: ```javascript computed: { fullName() { return `${this.firstName} ${this.lastName}`; } } ``` #### 监听器(Watchers) 监听器是一种显式地观察数据变化并执行回调函数的机制。它更适合用于执行副作用操作,例如触发网络请求、更新 DOM 或者与其他外部系统交互。 **特点**: - **无缓存**:每次数据变化都会触发回调函数,无论依赖是否真正改变。 - **显式回调**:需要手动定义回调函数来响应数据变化。 - **适用场景**:主要用于需要在数据变化时执行复杂操作或副作用的场景。 **示例**: ```javascript watch: { firstName(newVal, oldVal) { console.log(`firstName changed from ${oldVal} to ${newVal}`); } } ``` #### 区别对比 | 特性 | 计算属性 | 监听器 | |----------------|-----------------------------------|--------------------------------| | **缓存机制** | 有缓存,仅当依赖变化时重新计算[^3] | 无缓存,每次变化都会触发回调 | | **语法糖** | 简化 getter/setter 的书写 | 需要显式定义回调函数 | | **适用场景** | 派生数据 | 副作用操作 | --- ### 总结 计算属性监听器虽然都可以用来处理数据变化,但它们的设计目标不同。计算属性更适合用于创建派生数据,而监听器则更适合用于执行副作用操作,如网络请求或 DOM 更新[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值