记账起手篇

简介: 记账起手篇

记账起手篇


用@vue/cli创建项目

【提醒1:别忘了做项目时,每完成一个小阶段就提交一下代码:git status \ git add. \ git commit -m "xxx"】

【提醒2:template里面不能有两个根组件(两个div),所以要用一个大div包裹住里面的所有内容】

【提醒3:千万不要在手机上使用fixed定位,坑超级超级多 --- 使用flex定位】

【小技巧:vscode快速查找文件快捷键 ctrl+p 】

前期准备

网络异常,图片无法展示
|

创建项目

网络异常,图片无法展示
|

Vue功能的配置

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

项目的目录说明

目录:

  • public: 一般不会变动
  • src: 源代码source的简写src
  • assets(资源):除了HTML, CSS, JS, TS都放在这里. 比如图片, svg
  • components: 只放组件
  • router: 用来放路由
  • store:
  • views: 来放视图的
  • App.vue: 整个应用的视图
  • Main.ts: 入口文件, 主要功能来渲染App
  • registerServiceWorker.ts: 与PWA相关
  • shims-tsx.d.ts: TS相关的
  • shims-vue.d.ts: TS相关的
  • tests: 测试相关
  • 下面都是配置文件
  • tsconfig.json: TS配置
  • vue.config.js: webpack配置

网络异常,图片无法展示
|

使用编辑器(VScode或Webstorm)的一些快捷功能

网络异常,图片无法展示
|

编辑器配置:

vscode输入 vbase或者v 就能快速创建一些模板

网络异常,图片无法展示
|

import alias:

1、TS/JS可以通过 @/目录名 引入文件

网络异常,图片无法展示
|

改为下图的写法

网络异常,图片无法展示
|

这里的@就是代表src目录

2、CSS/SASS可以通过 ~@/目录名 引入文件

网络异常,图片无法展示
|

改为下图的写法

网络异常,图片无法展示
|

这里的~@就是代表src目录

关于ts文件的细节

默认生成的typescript是没有写分号的,但是ts又希望我们写分号,所以最好都加上分号

网络异常,图片无法展示
|

TypeScript Importer:自动填写import的工具

  • 1、安装TypeScript Importer插件
  • 2、鼠标滑到要引入的组件名字(这里就是把鼠标移到Money那里)
  • 3、ctrl+shift+p 输入命令Import
  • 4、点击add import选项

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|


底部导航思路一:配置router

确定页面url

网络异常,图片无法展示
|

网络异常,图片无法展示
|

配置router

网络异常,图片无法展示
|

网络异常,图片无法展示
|

初始化组件

网络异常,图片无法展示
|

网络异常,图片无法展示
|

控制渲染区域

网络异常,图片无法展示
|

这里实现了:用户切换不同的路径,就进入不同的页面 (默认是进入Money页面)

网络异常,图片无法展示
|

创建404页面

网络异常,图片无法展示
|

别忘了index.ts文件里import NotFound from '@/views/NotFound.vue'

网络异常,图片无法展示
|

底部导航思路二:全局引入

网络异常,图片无法展示
|

继续实现功能:点击记账/标签/统计,切换不同页面

网络异常,图片无法展示
|

但是呢,比如404页面就不需要记账/标签/统计这几个标签,所以要优化:将包裹记账/标签/统计的这个div封装成一个组件Nav

网络异常,图片无法展示
|

要引入这个组件,怎么引入呢? 比如在Money引入记账/标签/统计标签:

网络异常,图片无法展示
|

但是每个页面都这样引入,代码要重复写,所以采用全局引入Nav

网络异常,图片无法展示
|

全局引入后,单标签的import和components就不用写了

网络异常,图片无法展示
|

全局引入Nav的思路发展

![](p3-juejin.byteimg.com/tos-cn-i-k3…

底部导航思路三:添加样式

网络异常,图片无法展示
|

提醒:千万不要在手机上使用fixed定位,坑超级超级多】--- 所以使用flex定位

scoped的作用

写CSS,添加class类名很容易重复,比如nav这种太容易撞车了,这里Vue就给了个东西:scoped(范围),意思这个nav类名只在当前组件范围里 scoped会做俩件事情防止类名重叠:

1、在div类名后面添加随机字符串 data-v-xxxxx

2、会在css里添加一个属性选择器 data-v-xxxxx

网络异常,图片无法展示
|

【 但是不要在App.vue等这种作用于全局的文件里写scoped 】

将css布局抽离成组件Layout.vue

网络异常,图片无法展示
|

全局引入Layout

网络异常,图片无法展示
|

插槽

需求:不同页面插入的文案不同,比如Money.vue的文案是“此页面是Money.vue的内容”,而Labels页面的文案是“此页面是Labels.vue的内容”,不同页面不同文案,这时候可以使用插槽

插槽文档:cn.vuejs.org/v2/guide/co…

步骤:

  • 1、将相同的样式写到Layout.vue里,然后全局引入Layout组件
  • 2、使用插槽,将不同页面要显示的内容插入进去

网络异常,图片无法展示
|

网络异常,图片无法展示
|

使用svg-sprite-loader引入icon

网络异常,图片无法展示
|

步骤:

1、寻找要使用的 icon:iconfont-阿里巴巴矢量图标库

2、搜索相关关键词,比如label,然后下载icon (使用svg下载)

3、修改icon的名字(贴合你的文件名),并将其放到项目中,一般是在assets目录新建一个icons目录

网络异常,图片无法展示
|

网络异常,图片无法展示
|

4、引入svg,方法参考:鱼丸:关于Vue typescript 引入svg的问题

网络异常,图片无法展示
|

网络异常,图片无法展示
|

而我们得到的 x 是一个路径(字符串),因此我们需要svg-sprite-loader 【后续的操作看参考链接】

后续的操作中有是几个偏工程的代码,照着抄就好

网络异常,图片无法展示
|

网络异常,图片无法展示
|

在封装Icon时,别忘了全局引入Icon 以及把Nav里的【improt目录这部分代码】挪到 Icon.vue里

网络异常,图片无法展示
|

开始写CSS

(看Nav.vue和App.vue代码就行)

active-class 路由激活

实现:点击一个图标,图标就高亮

网络异常,图片无法展示
|

网络异常,图片无法展示
|

网络异常,图片无法展示
|

更新meta viewport

以适应手机端,使用淘宝的meta viewport即可


svg的两个坑

第一个坑:如果你下载的svg文件里,开发者自己写了 fill 这个属性,那么很容易影响你对icon变色的操作

解决办法:

步骤1、在vue.config.js里添加框红处的代码

步骤2、运行 yarn add --dev svgo-loader

网络异常,图片无法展示
|

有个注意点:

网络异常,图片无法展示
|

第二个坑:webstorm无法import scss文件 (2020年webstorm已经把这个bug修复了)

相关文章
|
小程序 前端开发 JavaScript
微信小程序MINA框架
【6月更文挑战第4天】微信小程序MINA框架是一个专为小程序设计的框架,它主要分为两大部分:页面视图层(View)和AppService应用逻辑层。下面我将结合代码和图示来详细讲解MINA框架。
255 0
|
NoSQL 编译器 C语言
VSCode配置配置C++环境
VSCode配置配置C++环境
380 1
|
机器学习/深度学习 人工智能
线性代数基础--矩阵
线性代数基础--矩阵
3353 0
|
数据库 Python
matplotlib绘制柱状图之基本配置——万能模板案例
matplotlib绘制柱状图之基本配置——万能模板案例
1056 0
matplotlib绘制柱状图之基本配置——万能模板案例
|
设计模式 Dubbo Java
让GitHub低头认错的这份阿里内部绝密Java面试八股文手册有多强?
今天给大家分享出一份让大家上班摸鱼也可以随意看的阿里巴巴内部特供Java面试八股文手册,这份手册据说曾经也是让GitHub都为之低头的存在!
216 0
|
Java API
Easy-Flows - Java的简单愚蠢的工作流引擎(二)
Easy-Flows - Java的简单愚蠢的工作流引擎(二)
743 0
Easy-Flows - Java的简单愚蠢的工作流引擎(二)
|
NoSQL Java Redis
Redis(十一)-Redis的常用数据类型之zset类型
Redis有序集合zset与普通集合set非常相似,还没了解过set数据类型的小伙伴可以先了解一波! ,它也是一个没有重复元素的字符串集合。
149 0
Redis(十一)-Redis的常用数据类型之zset类型
|
存储 C语言
C语言数据结构篇——顺序表的理解,创建,插入和删除
C语言数据结构篇——顺序表的理解,创建,插入和删除
489 0
|
SQL 存储 缓存
MySQL部分配置解析【持续更新】
一些mysql的配置参数解析,性能优化。
303 0