[Vue] props属性

发布时间 2023-12-15 19:24:51作者: Akira300000

vue2里组件的一个属性,用来传递组件外部发来的数据

传递数据

<Student name="Bob" age=22/>

接收数据 -- 3种方法

// 1. receiving data only
// 组件里的props属性,和data/method同级
props:['name', 'age']

// 2. data type limited
props: {
	name: String,
	age: Number
}

// 3. more details added
props: {
	name: {
		type: String,
		required: true,
		default: "Alice"
	}
}

修改传来数据

props是只读的,因此不接受任何形式的直接修改;如果需要修改,则需要将props内的数据拷贝到data中,然后针对data里的数据进行修改

? 创建一个按钮,点击事件是令组件的age值加1

<h1>Age: {{newAge}}</h1>
<button @click="ageUp">Click to Add Age Up</button>

? 在组件内部的属性里修改age值

// this指向的是这个组件实例Student
// 这个缩进怎么这么大
export default {
	name: 'Student',
	data() {
		return {
			newAge: this.age
		}
	},
	methods {
		updateAge() {
			this.newAge++
		}
	}
}