前端新增、修改和详情页面可以使用同一个页面,也可以使用不同的页面,具体取决于业务需求和设计风格。下面分别介绍使用同一个页面和使用不同页面的做法。
## 使用同一个页面
使用同一个页面可以减少代码量和维护成本,提高开发效率。可以通过路由参数来判断当前页面是新增、修改还是详情页面。例如:
```javascript
// 路由配置
{
path: '/user/:id',
component: UserPage
}
// UserPage组件
export default {
data() {
return {
mode: null,
user: null
};
},
created() {
const id = this.$route.params.id;
if (id === 'new') {
this.mode = 'new';
this.user = {};
} else {
this.mode = 'edit';
this.fetchUser(id);
}
},
methods: {
fetchUser(id) {
// 发送AJAX请求获取用户信息
// ...
},
saveUser() {
// 发送AJAX请求保存用户信息
// ...
}
}
}
```
这里通过路由参数`id`来判断当前页面是新增、修改还是详情页面,然后根据不同的模式来显示不同的UI和处理不同的业务逻辑。
## 使用不同页面
使用不同页面可以更加灵活,适应不同的业务需求和设计风格。可以通过路由配置来设置不同的页面和对应的组件。例如:
```javascript
// 路由配置
{
path: '/user/new',
component: UserNewPage
},
{
path: '/user/:id',
component: UserEditPage
},
{
path: '/user/:id/detail',
component: UserDetailPage
}
// UserNewPage组件
export default {
data() {
return {
user: {}
};
},
methods: {
saveUser() {
// 发送AJAX请求保存用户信息
// ...
}
}
}
// UserEditPage组件
export default {
data() {
return {
user: null
};
},
created() {
const id = this.$route.params.id;
this.fetchUser(id);
},
methods: {
fetchUser(id) {
// 发送AJAX请求获取用户信息
// ...
},
saveUser() {
// 发送AJAX请求保存用户信息
// ...
}
}
}
// UserDetailPage组件
export default {
data() {
return {
user: null
};
},
created() {
const id = this.$route.params.id;
this.fetchUser(id);
},
methods: {
fetchUser(id) {
// 发送AJAX请求获取用户信息
// ...
}
}
}
```
这里根据不同的路由配置来设置不同的页面和对应的组件,每个组件负责处理自己的业务逻辑和UI展示。
总之,前端新增、修改和详情页面可以使用同一个页面,也可以使用不同的页面,具体取决于业务需求和设计风格。