uniapp双向绑定表格
时间: 2025-02-12 14:20:11 浏览: 53
### 使用 UniApp 实现表格的双向绑定
在 UniApp 中实现表格的双向绑定可以通过 `v-model` 指令来完成。由于 UniApp 基于 Vue.js 的语法,因此可以在组件中利用 Vue 提供的数据绑定机制。
#### 创建一个简单的申请表单页面并实现双向绑定
为了创建一个带有表格功能的申请表单页面,在项目文件夹下新建一个 `.vue` 文件作为页面入口:
```html
<template>
<view class="container">
<!-- 表头 -->
<view class="table-header">
<text>姓名</text>
<text>年龄</text>
<text>操作</text>
</view>
<!-- 动态渲染每一行数据 -->
<block v-for="(item, index) in users" :key="index">
<view class="table-row">
<input type="text" v-model="users[index].name"/>
<input type="number" v-model.number="users[index].age"/>
<button @click="removeUser(index)">删除</button>
</view>
</block>
<!-- 添加按钮 -->
<button @click="addNewRow">新增一行</button>
</view>
</template>
<script>
export default {
data() {
return {
users: [
{ name: "张三", age: 20 },
{ name: "李四", age: 22 }
]
};
},
methods: {
removeUser(idx) {
this.users.splice(idx, 1);
},
addNewRow() {
this.users.push({ name: "", age: null });
}
}
};
</script>
<style scoped>
.container {
padding: 20px;
}
.table-header,
.table-row {
display: flex;
justify-content: space-around;
margin-bottom: 8px;
}
</style>
```
上述代码展示了如何定义一个包含输入框和按钮的基础结构,并通过 `v-model` 将输入控件与 JavaScript 对象中的属性关联起来[^1]。每当用户修改输入框内的值时,对应的对象属性也会同步更新;反之亦然——当改变对象内部状态时,视图会自动刷新显示最新的内容。
需要注意的是,如果动态添加新的字段到已有对象上,默认情况下这些新字段不会被检测到从而无法触发响应式的更新行为。对于这种情况,应该使用 `$set()` 方法显式通知 Vue 进行追踪[^2]。
例如,在方法里调整如下:
```javascript
methods: {
...
addProperty() {
// 正确的方式:使用 $set 来确保新属性具有反应性
this.$set(this.user, 'newField', value);
}
}
```
阅读全文
相关推荐
















