全选:
- 用到Vuex,进行数据持久化,
/*
位置:子组件components/myFooter.vue
*/
<input type=“checkbox” v-model=“ s t o r e . s t a t e . v m C k A l l " @ c l i c k = " c k A l l ( store.state.vmCkAll" @click="ckAll( store.state.vmCkAll"@click="ckAll(event)”>全选
全选、反选删除
- 注释标在代码里这里就不写了
/*
位置:store/index.js
*/
import { createStore, } from ‘vuex’
import axios from ‘axios’
import persist from ‘vuex-persistedstate’
export default createStore({
state: {
// 原数据
data: [],
vmCkAll: false,
edit: true,
//备份数据,用于过滤
data1: [],
text: ‘’,
},
getters: {
// num(state) {
// // num形参就是后面的数字,e形参就是data每一项 ,
// return state.data.reduce((num, e) => num += e.checked && e.num, 0)
// },
// priceAll(state) {
// return state.data.reduce((num, e) => num += e.checked && e.num * e.price, 0)
// }
num(state) {
return state.data.reduce((num, item) => num += item.checked && item.num, 0)
},
priceAll(state) {
return state.data.reduce((num, item) => num += item.checked && item.num * item.price, 0)
}
},
mutations: {
changeDate(state, val) {
// 在mutations 接受actions,第一步请求数据
if (localStorage.getItem(“vuex”)) {
//json数据刷新会重新请求数据,直接赋值list不会实现持久化所以,本地存储有用本地的没有用json
state.data = JSON.parse(localStorage.getItem(“vuex”)).data;
state.data1 = JSON.parse(localStorage.getItem(“vuex”)).data;
} else {
state.data = val;
state.data1 = val;
}
},
text(state, val) {
state.text = val
},
// 全选逻辑
ckAll(state, ckAllChecked) {
// 将全选的状态赋值数据所有的状态,点击全选全部选中
state.data.forEach(e => e.checked = ckAllChecked)
},
//反选逻辑
ck(state, propsId) {
console.log(propsId);
// 循环原数据如果点击传过来的id=vuex的id,则子复选框状态改变
state.data.forEach(item => item.id == propsId ? item.checked = !item.checked : ‘’)
state.vmCkAll = state.data.every(item => item.checked)
},
// 编辑文字切换
edit(state) {
state.edit = !state.edit
},
//删除
del(state) {
// 全选删除逻辑,就是将没被勾选的赋值原数据
state.data = state.data.filter(item => !item.checked)
state.vmCkAll = false
},
// 过滤
okBtn(state) {
//备份数据,用于过滤
state.data = state.data1.filter(e => e.name.includes(state.text))
}
},
actions: { //异步
getData(context) {
axios.get(‘/data.json’).then(res => {
// console.log(res);
context.commit(‘changeDate’, res.data.cartData)
})
}
},
//plugins插件 persist 持久
plugins: [persist({
storage: localStorage, // 定义数据存储的方式 值可以是localStorage 也可以是sessionStorage 或cookies
reducer(state) {
return { // 定义需要指定存储的数据
data: state.data
}
}
})]
})
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可免费获取,包括答案解析。
mg-D12RFEwS-1713569653064)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
[外链图片转存中…(img-CImqbyyP-1713569653064)]
最后
文章到这里就结束了,如果觉得对你有帮助可以点个赞哦,如果有需要前端校招面试题PDF完整版的朋友可以点击这里即可免费获取,包括答案解析。
[外链图片转存中…(img-I3QAcg7w-1713569653064)]