箭头函数、Promise对象、position

238 阅读2分钟

这是我参与 8 月更文挑战的第 9 天,活动详情查看: 8月更文挑战

一、箭头函数

在Vue中箭头函数相当于匿名函数,并且简化了函数定义。

(1) 种类一

只包含一个表达式,省略{ }花括号和return

x => x * x
相当于
function(x){
    return x*x;
}

(2) 种类二

包含多条语句。

valid => {
    console.log(valid)
}
相当于
function(valid){
    console.log(valid)
}

当参数多于1个时,需要用括号()括起来。

(x,y) => x + y

如果要返回一个对象,就要注意,如果是单表达式,这么写的话会报错:

// SyntaxError:
x => { foo: x }

改为:

// ok:
x => ({ foo: x })

二、Promise对象

在Vue中Promise对象代表了未来将要发生的事件,用来传递异步操作的信息。

Promise对象代表一个异步操作,有三种状态:

  • Pending:初始状态,不是成功或失败状态
  • fulfilled: 操作成功完成状态
  • rejected:操作失败状态

Promise {pending}需要用then或async await接收。

例如:

// 定义一个变量直接a() 赋值给 b
let b = this.a()
console.log(b)  //这里就会返回 Promise {<pending>}

(1) 改用then接收

let b = this.a()
.then(res =>{
	//.then是接收正确返回的信息
	console.log(res) // {...}
})
.catch(err =>{
	// .catch 返回报错信息
	console.log(err)
})

(2) 改用async await接收

async c(){
	let b = await this.a()
	console.log(b)  // 现在就是正确返回了 {...}	
}

三、position

css中position可选参数包括:

  • static: 无特殊定位,对象遵循HTML定位规则
  • absolute :  将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位。而其层叠通过css z-index属性定义。此时对象不具有边距,但仍有补白和边框。绝对定位可以重叠。
  • relative :  对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置。相对定位不可以重叠。使用相对定位时,无论元素是否进行移动,元素依然占据原来的空间。因此,移动元素会导致它覆盖其他框。