Vue3 写项目 技术选型全家桶 移动端购物车+引用动画库+多选删除+筛选

文章介绍了如何在Vue项目中使用Vuex进行状态管理和数据持久化,特别是在子组件中处理全选、反选、删除操作,以及store中getters和mutations的实现。同时提到了作者提供的一份前端开发学习资源,涵盖了基础知识、进阶课程和面试准备等内容。
摘要由CSDN通过智能技术生成

全选:

  • 用到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.getters.priceAll}}
去支付{{$store.getters.num}}

全选、反选删除

  • 注释标在代码里这里就不写了 

/*

位置: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前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取

前端面试题宝典

前端校招面试题详解

gtp.com/2024/03/13/H4lCoPEF.jpg" />

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取

[外链图片转存中…(img-MAT0yNi5-1712510071748)]

[外链图片转存中…(img-ZZDTVYzA-1712510071748)]

[外链图片转存中…(img-s1tN3Tgk-1712510071748)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值