vue delete删除json数组_Vue记账项目-列表展示页

Scoped CSS-深度作用选择器

Scoped CSS | Vue Loader​vue-loader.vuejs.org

<style>标签有scoped属性时,它的 CSS 只作用于当前组件中的元素。

如果希望scoped样式中的一个选择器能够作用得“更深”,可以使用/deep/::v-deep(后者可以被sass认出来)操作符

4704c57b314b4de20a423353c725f54b.png

由于Types组件是外部的,li是Types组件的元素,因此scoped作用不到li元素上,因此需要使用::v-deep深入到.x里面的组件元素

那如果组件里有多个li时,想要精准控制,则需要在前面添加前缀

fdff1fa292e76cb60f08ca90fade61de.png

a9313b976e50b301c2baac5f12ca6f1b.png

表驱动形式:如果后面是真则要selected这个clss

ES6新语法,如果key里面有变量,可以用中括号包起来,此处classPrefix就是变量

bd1fde15bc571eeb1091de56aeed1de9.png

27d374947826f5b50d3dd193908b6aab.png

制作三栏切换

新建组件Tabs.vue

从数据源获取数据

106fdd15062cd64951aa1093a163ae04.png

984278a9374a361c2d1337c4891efa3a.png

dce34e18737fd726e171b176c0225fd8.png

遍历数据源获取数据,并设置选中事件

e76bba6addfffbe43a84b3a7ae379d5f.png

声明通用类型

e5f5523a6d863c3caa25af1ce2ddfc7e.png

985220ed40f8f827a2125a6fb2c98ea7.png

设置class当前的value正好等于选中的value

060614b23a5f4bd765fc5b7c133a0cdd.png

Tags.vue可以调整为通用组件,让class有两个类

a5e2bf3c8d94dbdf19946a409d6478fd.png

3e47a7ae8532dce404d614fb7e790a8d.png

将数据源模块化

e3286b883ce899ced23df3bcdbf5d94f.png

Object.freeze不能修改地址,还不能修改内容

7c9175d169267d8428fa168a297aeb56.png

6c2121e5eb9e368fc7cd20b7ab62cda5.png

则无需Type.vue组件可删除

用列表展示数据

使用computed将List(数组)和type(收入、支出)、interval(按天、周、月)(两个string)结合起来组成一个新的列表(trees)

获取recordList,渲染数据,展示列表result

ff95692bf94ed3a3ae2bc5b38dcb64b7.png

根据时间分组

43052f4aef8e4a7b4a1dc3a3829fdf51.png

此时发现不知道createdAt的类型是什么,recordList的类型是any

9d282202f3980591bd0540ec58f08cc7.png

而之前已经声明了recordList的类型是RootState

1d06dbc5f83fb447b41e2a3cefd7c6c8.png

这是一个bug,Vuex在得到store的时候,它不能将类型正确的返回

在全局中声明类型

9ff72e84dfe9754c372626b111733be4.png

现在recordList就有了类型,createdAt类型

21aaf0d47e4bd0597f52c7c2dac15dcd.png

25a7097cace0b7d282bfa0b3b46f4540.png

这个是因为这个原因造成的

dcae476ddd1b416e601e30ce2568c1fd.png

JSON.parse没有保证parse的类型是左右一致的

e8f9ec7554d68f2fe86a16001d6ea19b.png

JSON不支持Date,JSON支持的类型:双引号括起来的字符串(string)、数值(number)、truefalsenull、对象(object)或者数组(array)

所以Date会默认转成string

77076db285dcaae4cf2c957c5744d4b4.png

0a9c7a5d16cf81b8d6fc45901c753ac5.png

40b4bb343cc76f3af84df930f574b2d3.png

从而可以获取日期和时间

268e41aa4359a03d8cbb53e6836fc65b.png

4ba7f405d866974b22712fb8041ffcc3.png

遍历result

cc83100e26488ede2b381be9684da481.png

要给group添加标题

9b8bdf9abe5bb537623ff5045b9386df.png

dc19d84de4da2f97033c95bfc96a22cc.png

7142103f82c3c3f428cbe000f5bcc7d8.png

数据排序

遍历对象的时候,key是没有办法保持顺序的,所以要将result改成一个数组,再进行排序

sort会改变原来的数组因此先clone一下

fbea5c1da3320a21f13a4d4d0377e35c.png

clone后面是any类型,调整为给传什么类型就返回什么类型

4ed8736eb8717dc93658259f9b01a613.png

排序后分组

先将得到的数组进行排序,然后将第一个数组放入result里,遍历后面排序好的数组,将当前的数组和result里最后一个数组的item进行比较,如果相同(是不是同一天)就push到last一组里,如果不相同就push到result里

1f0cfa5d4039585f8a12a9ee2922768f.png

1b3d051aa61c384497e69084df390b05.png

区分收入和支出

dd875ad259bf44497f0d03748c782db9.png

显示总数

a9767d79503e554d66eb2d11d0378573.png

forEach是没有返回值的map

d099b195342e2a2ab175cfd42a586a88.png

此时发现amount的是字符串,修复bug

3f61b8de8aaa091b927d19ccc47ecaaf.png

89b4c2521e5d3cea867287bb8b2a0bc0.png

this.output是一个字符串,事件emit没有办法指定第二个参数的类型

43f98be1b03a0b3acf681f948633ca62.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值