Vue入门(三)---- Vue数据交互方式以及Vue的计算属性和侦听属性

Vue入门(三)---- Vue数据交互方式以及Vue的计算属性和侦听属性

不要问我为什么三比二先问世,问就是这个世界的错,反正我不承认自己懒!

Vue数据交互方式以及Vue的计算属性和侦听属性

Vue数据交互方式

通常情况,Vue框架下的数据交互方式分为,axios、fetch(原生)、resource(Vue1.0x,不建议使用)。
三者都是Promise的回调函数方式,但由于fetch是原生方法,所以fetch不存在外包,存在安全隐患,而axios和resource都是封装的方法,都解决了传递时的安全问题,可以有效避免XSRF攻击。

axios

推荐使用axios。

axios 的 get 交互

// 无参数传输时
axios.get(url).then(res=>console.log(res).catch(error=>conosle.log(error));

// 需传输参数时
axios({
    url: 'http://xxx',
    method: 'get' //默认就是get,这个可以省略,
    params: {
        key: value
    }
 }).then().catch();

axios的post交互

// 其实都可以在npmjs中sreach -> axios看到API,不过post的使用按照API存在一定问题
// 需要设置请求头以及创建params对象

// 统一设置请求头
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

// 创建params对象
let params = new URLSearchParams();

// 使用params传递参数  params.append(key,value)
params.append('a',1);
params.append('b',2);
fetch

相较于axios,fetch是原生js,在使用和安全性方面都有不尽如人意的地方。
但是,fetch可以设置多种格式,如:json() json类型数据格式;text() 文本类型数据格式化; blob() 二进制数据格式化 图片 视频 音频

fetch 的 get 交互

// 无参数时
fetch('http://localhost:3000/shop.json')
    .then( data => data.json());
    .then( res => console.log( res ));
    .catch( err => console.log( err ));
// fetch的接受数据处理分为两个阶段,第一个then处理数据格式,第二个then才实现数据处理

// 有参数时
fetch('http://localhost:3000/shop?a=1&b=2') // 需将参数直接写在地址栏上
    .then( data => data.json());
    .then( res => console.log( res ));
    .catch( err => console.log( err ));

fetch 的 post 交互

fetch('http://localhost:3000/shop', {
    method: 'POST',
    headers: new Headers({
        'Content-Type': 'application/x-www-form-urlencoded' // 指定提交方式为表单提交
	}),
    body: new URLSearchParams([["foo", 1],["bar", 2]]).toString()
})
.then((res)=>{ return res.text()})
.then((res)=>{console.log(res)})
.catch( err => console.log( err ));
resource

resouce由Vue1.0提供,使用时需下载resource插件,使用方式基本和axios相同,但resource支持jsonp格式的数据,axios不支持

// 相同的地方就不过多赘述
this.$http({ url: './mock/data.json'}).then( res => console.log( res )).catch( err => console.log( err ));
// resource是绑定在Vue上,所以安装插件后可以调用属性$http使用

Vue的计算属性和侦听属性

计算属性

由于一些逻辑、方法,不存在用户交互,所以不放置在methods内,避免混淆,所以Vue内存在一个computed块,存放这些逻辑、方法。

// This is an example
computed: {
	//这里面放的都是方法
	reserseInfo () {
		return this.info.split('').reverse().join('');
	}
}
侦听属性

面对一个由某一个数据改变引起新的异步数据请求,那么我们可以watch实现侦听数据变化。

new Vue({
	el: '#app',
	data: {
		firstName: '',
		lastName: '',
		fullName: ''
},
watch: {
	//watch是一个对象
	// watch里面存储的类型: 方法,对象,普通字符
	firstName ( val ) {//方法的名称和data选项中的key相同,是谁就监听谁
		this.fullName = val + this.lastName;
	},
	lastName ( val ) {
		this.fullName = this.firstName + val ;
	}
	}
})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值