uniapp,新增和编辑页面可以写在一个页面吗?给个例子
时间: 2023-11-16 22:05:36 浏览: 30
可以的,下面是一个简单的例子:
```
<template>
<view>
<form>
<input v-model="name" placeholder="请输入姓名" />
<input v-model="age" placeholder="请输入年龄" />
<button @click="submitForm">{{ formType === 'add' ? '新增' : '编辑' }}</button>
</form>
</view>
</template>
<script>
export default {
data() {
return {
name: '',
age: '',
formType: 'add', // 默认为新增状态
}
},
onLoad(options) {
if (options.id) {
// 如果有id,则说明是编辑操作
this.formType = 'edit'
// 根据id请求数据,然后将数据填充到表单中
// ...
}
},
methods: {
submitForm() {
if (this.formType === 'add') {
// 新增操作
// ...
} else {
// 编辑操作
// ...
}
}
}
}
</script>
```
在这个例子中,我们通过判断 `formType` 变量的值来区分当前是新增还是编辑状态,然后根据不同的状态来展示不同的视图和执行不同的操作。在 `onLoad` 生命周期函数中,我们通过判断传入的参数有没有 `id` 来判断当前是编辑还是新增操作。如果有 `id` 参数,则说明是编辑操作,我们通过请求数据然后将数据填充到表单中,以便用户进行编辑操作。