在食谱网站或烹饪应用程序中,用户经常需要跟踪和管理购物清单。此代码片段提供了一种使用 Vue.js 创建交互式购物清单的方法,允许用户添加、删除和更新清单中的项目。
该代码片段实现了以下功能:
首先,使用 Vue.js 的 ref
创建一个响应式的购物清单数组:
const ingredients = ref([
{
name: "asparagus spears",
quantity: 8,
},
{
name: "handfuls cherry tomatoes",
quantity: 6,
},
]);
用户可以通过点击“添加所有食材到购物清单”按钮添加新项目。此按钮触发一个事件处理程序,该处理程序使用 push
方法将新项目添加到 ingredients
数组中:
<button type="button" @click="addIngredients">
Add all ingredients to the shopping list
</button>
methods: {
addIngredients() {
ingredients.value.push({
name: "New ingredient",
quantity: 1,
});
},
}
用户可以通过点击每个项目旁边的复选框来删除项目。此复选框与一个事件处理程序相关联,该处理程序使用 splice
方法从 ingredients
数组中删除相应项目:
<input type="checkbox" @click="removeIngredient(index)">
methods: {
removeIngredient(index) {
ingredients.value.splice(index, 1);
},
}
用户可以通过更新每个项目旁边的数量输入框来更新项目数量。此输入框与一个事件处理程序相关联,该处理程序使用 Vue.set
方法更新 ingredients
数组中相应项目的数量:
<input type="number" @input="updateQuantity(index, $event.target.value)">
methods: {
updateQuantity(index, value) {
Vue.set(ingredients.value[index], "quantity", value);
},
}
开发此代码片段的经验和收获包括:
未来,该购物清单功能可以扩展和优化: