7. Vue3 实现toDoList,以及类似京东App搜索缓存数据功能
一、Vue3.x中集成Sass/scsss
1.1、安装sass-loader node-sass
npm install -D sass-loader node-sass
1.2、style中配置sass/scss
lang可以配置scss ,scoped表示这里写的css只有当前组件有效
<style lang = "scss" scoped>
h2 {
text-align: center;
}
</style>
二、Vue3.x 实现一个完整的toDoList(待办事项) 以及类似京东App搜索缓存数据功能
2.1、vuedemo-v-show
<template>
<h2>Vue实现TodoList</h2>
<div class="todolist">
<input type="text" v-model="todo" @keyup.enter="addData()" />
<hr />
<h4>正在进行</h4>
<ul>
<li v-for="(item, index) in list" :key="index" v-show="!item.checked">
<input type="checkbox" v-model="item.checked" /> {{ item.title }}----
<button @click="deleteData(index)">删除</button>
</li>
</ul>
<h4>已经完成</h4>
<ul>
<li v-for="(item, index) in list" :key="index" v-show="item.checked">
<input type="checkbox" v-model="item.checked" /> {{ item.title }}----
<button @click="deleteData(index)">删除</button>
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
todo: "",
list: [],
};
},
methods: {
addData() {
this.list.push({
title: this.todo,
checked: false,
});
this.todo = "";
},
deleteData(key) {
// alert(key)
this.list.splice(key, 1);
},
},
};
</script>
<style lang="scss">
h2 {
text-align: center;
}
.todolist {
width: 500px;
border: 1px solid #eee;
margin: 0 auto;
padding: 20px;
h3 {
color: red;
font-size: 40px;
}
}
</style>
2.2、vuedemo-v-if
<template>
<h2>Vue实现TodoList</h2>
<div class="todolist">
<input type="text" v-model="todo" @keyup.enter="addData()" />
<hr />
<h4>正在进行</h4>
<ul>
<template v-for="(item, index) in list" :key="index">
<li v-if="!item.checked">
<input type="checkbox" v-model="item.checked" /> {{ item.title }}----
<button @click="deleteData(index)">删除</button>
</li>
</template>
</ul>
<h4>已经完成</h4>
<ul>
<template v-for="(item, index) in list" :key="index">
<li v-if="item.checked">
<input type="checkbox" v-model="item.checked" /> {{ item.title }}----
<button @click="deleteData(index)">删除</button>
</li>
</template>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
todo: "",
list: [],
};
},
methods: {
addData() {
this.list.push({
title: this.todo,
checked: false,
});
this.todo = "";
},
deleteData(key) {
// alert(key)
this.list.splice(key, 1);
},
},
};
</script>
<style lang="scss">
h2 {
text-align: center;
}
.todolist {
width: 500px;
border: 1px solid #eee;
margin: 0 auto;
padding: 20px;
h3 {
color: red;
font-size: 40px;
}
}
</style>



浙公网安备 33010602011771号