sync不生效 vue_Vue实战项目-记账器-重要知识点汇总

历时3周,记账器项目终于可以运行了,这次项目是基于Vue开发,用到了typeScript和Scss,下面基于项目做一个阶段性的总结,回顾一下项目中用到的知识点。

一.组件

一开始用的是JS对象的写法:

构造选项:

{
data(){return {}
},
methods: {}
}

这次项目用的是类组件和装饰器(可以用js写也可以用ts写)

 import Vue from 'vue';import {Component, Prop} from 'vue-property-decorator';@Componentexport default class Tags extends Vue {}

二、computed

computed的用处非常多:比如获取Vuex的数据、获取计算出来的列表

优点:自动根据所需依赖缓存,减少计算

深入了解computed和watch的区别:

good V:Vue-computed和watch的区别​zhuanlan.zhihu.com

ts中computed用法:

  @Component({components: {Types, Tags, NumberPad, FormItem},computed: {recordList() {return this.$store.state.recordList;},tagList() {return this.$store.state.tagList;}}})

三、watch

装饰器写法:

@Watch('tags', {immediate: true})onTagChange(tags) {this.outputTags = tags.filter((item) => item.type === '-');this.inputTags = tags.filter((item) => item.type === '+');}

四、Prop、.sync、v-model

Prop传值:

//父组件likes="10"//子组件
props: {likes: Number,
}

子组件收到后,改变值:

//子组件
<button v-on:click="$emit('changeLikes', 5)">按钮
</button>//父组件
v-on:changeLikes="likes += $event"

.sync、v-model都是语法糖

good V:深入了解Vue的修饰符.sync【 vue sync修饰符示例】​zhuanlan.zhihu.com

五、插槽slot

项目中的Layout组件就是用的插槽

//Layout.vue 组件
<template><div ><slot></slot></div>
</template>//其他组件引用Layout组件
<template><Layout>我是插槽里面的内容,会替换Layout中的slot</Layout>
</template>

具名插槽:

插槽 — Vue.js​cn.vuejs.org
245b2c768ba7dd335d352d8aefa0e9be.png

六、svg symbols

svg图标引入:

1、从Iconfont-阿里巴巴矢量图标库中找到需要的图标,下载为svg模式,存到assets>icon里面

2、在vue.config.js中能够配置loader:

const path = require('path')module.exports = {publicPath: process.env.NODE_ENV === 'production'? '/mango-bill': '/',lintOnSave: false,chainWebpack: config => {const dir = path.resolve(__dirname, 'src/assets/icons') // 当前目录config.module.rule('svg-sprite').test(/.svg$/).include.add(dir).end() // 只包含icons目录.use('svg-sprite-loader').loader('svg-sprite-loader').options({extract: false}).end() //不需要解析成文件// .use('svgo-loader').loader('svgo-loader')// .tap(options => ({...options, plugins: [{removeAttrs: {attrs: 'fill'}}]})).end()config.plugin('svg-sprite').use(require('svg-sprite-loader/plugin'), [{plainSprite: true}])config.module.rule('svg').exclude.add(dir) // 其他svg loader排除icons目录}
}

3、创建Icon组件

<template><svg class="icon" @click="$emit('click', $event)"><use :xlink:href="'#' + name"></use></svg></template><script lang="ts">const importAll = (requireContext: __WebpackModuleApi.RequireContext) => requireContext.keys().forEach(requireContext);try {importAll(require.context('../assets/icons', true, /.svg$/));} catch (error) {console.log(error);}export default {name: 'Icon',props: ['name']};
</script><style scoped lang="scss">.icon {width: 1em; height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;}
</style>

4、在main.ts中挂载为全局组件

import Icon from '@/components/Icon.vue';Vue.component('Icon', Icon);

5、组件中使用

只要写上svg的名称就可以使用了

<Icon name="money"></Icon>

七、Window.localStorage(一般只能存5~10M)

//存
localStorage.setItem('myCat', 'Tom');//取
let cat = localStorage.getItem('myCat');

序列化:即js中的Object转化为字符串

var str=JSON.stringify(obj); //将JSON对象转化为JSON字符

反序列化:即js中JSON字符串转化为Object

var obj = JSON.parse(data); //由JSON字符串转换为JSON对象

八、表驱动编程

例如项目中用到的:":class={key:value,key:value}"

<div :class="{selected: IsSeletedTag(item) >= 0,red:toggle === '-'}"
</div>

九、模块化思想

项目中用到的store就是典型的模块化,Vuex也是模块化

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fifo页面置换算法设计思路_千万级并发!如何设计一个多级缓存系统?

什么是一个多级缓存系统?它有什么用?我们又如何设计一个多级缓存系统?图片来自 Pexels所谓多级缓存系统&#xff0c;就是指在一个系统的不同的架构层级进行数据缓存&#xff0c;以提升访问效率。我们都知道&#xff0c;一个缓存系统&#xff0c;它面临着许多问题&#xff0c…

apple quicktime怎么在ppt中用_PPT情感专题大赏No. 007:一份这就是街舞第三季主题PPT(上集)...

Hello&#xff0c;大家好&#xff0c;这里是千师傅小作坊第35期&#xff0c;我是你们的老朋友千千。熟悉千师傅小作坊的人都知道&#xff0c;千师傅特别喜欢看综艺&#xff0c;尤其是音乐、表演、舞蹈类。作为一个十八线PPT设计师&#xff0c;如果我看到好看的节目视觉设计&…

idea内存溢出解决_各种OOM代码样例及解决方法

针对目前大家对OOM的类型不太熟悉&#xff0c;那么来总结一下各种OOM出现的情况以及解决方法。把各种OOM的情况列出来&#xff0c;然后逐一进行代码编写复现和提供解决方法。1. 堆溢出-java.lang.OutOfMemoryError: Java heap space。2. 栈溢出-java.lang.OutOfMemorryError。3…

win7安装硬盘后无法启动计算机,硬盘装Win7系统电脑后开机提示DISK BOOT FAILURE怎么办【图文】...

很多人都喜欢安装win7系统&#xff0c;而硬盘安装系统的方式也是深受用户们的喜欢&#xff0c;但是最近有用户反映说硬盘安装win7系统之后&#xff0c;在重启计算机的时候屏幕提示DISK BOOT FAILURE,INSERT SYSTEM DISK AND PRESS ENTER&#xff0c;导致无法正常进入系统&#…

导入数据中文乱码_基于Navicat和Kettle的数据迁移完全解读(多图)

需求描述对于数据分析人员来说&#xff0c;工作的基础是数据&#xff0c;没有数据分析就无从谈起&#xff0c;即巧妇难为无米之炊。#数据库# #数据迁移# #Oracle# 然而&#xff0c;数据分析往往在实验环境或者准生产环境中开展&#xff0c;而数据分布在生产环境&#xff0c;因此…

怎样能确保计算机安全,如何确保电脑安全

如何确保电脑安全电脑安全问题层出不穷&#xff0c;如何确保电脑安全呢?下面是小编分享的一些方法&#xff0c;一起来看一下吧。一、关闭默认共享大部分的电脑系统在默认的情况下都是自动开启网络共享设置的&#xff0c;Win7系统也不例外&#xff0c;该功能主要是为了用户能够…

点云平面提取_基于LiDAR点云数据滤波方法

基于LiDAR点云数据滤波方法机载激光雷达所获取的数据被称为“点云(points cloud)”它在三维空间中呈现出随机分布的形状。在点云中&#xff0c;有些点属于真实的地形表面的点&#xff0c;有些点属于人工建筑物塔、输电线、桥等或自然植被如树、灌木、草、其他植物。激光雷达数据…

全国计算机一级书红色封面,年度最强的网红录取通知书,竟然附赠了一张黑胶唱片...

这两天世超被一张来自中国科学院大学的录取通知书给刷屏了&#xff0c;这份录取通知书里还附赠了一张黑胶光盘。光盘上刻录了一份国科大为新生准备的特别的礼物 —— 一段来自宇宙深处的声音。它们是由国科大师生通过 500 米口径球面射电望远镜( FAST )捕获的 15 颗脉冲星信号&…

动态新增表字段_制作动态的数据透视表(一):定义名称法创建数据透视表

——施瓦辛格&#xff1a;没有跌倒过的人不会成功。我们的日常工作中&#xff0c;会经常遇到一种情况&#xff1a;创建好数据透视表后&#xff0c;有其他被遗漏的数据内容需要重新插入到数据源后&#xff0c;有其他被遗漏的数据内容需要重新插入到数据源中&#xff1b;或者是需…

计算机公式or,【转载】 odds、OR和RR的计算公式和实际意义

1. OddsOdds 的意思为机率、可能性&#xff0c;是指某事件发生的可能性(概率)与不发生的可能性(概率)之比。假如某药物有疗效的比例为p1&#xff0c;则无效的比为1-p1&#xff0c;则odds的计算公式为&#xff1a;对于如下表所示的四格表&#xff0c;患病组的中暴露的概率(以实测…

系统相机裁剪比例_拍照时图片比例怎么选?比构图还要提前一步的摄影攻略要做好...

谈到摄影第一步&#xff0c;很多人都在说构图&#xff0c;但是比构图还要提前一步的&#xff0c;是选择合适的拍摄比例。在拍照时&#xff0c;始终是把要拍的东西装进设备的取景器里面&#xff0c;所以取景器的比例是16:9&#xff0c;还是4:3或者其他&#xff0c;就直接影响了我…

源码安装mysql_CentOS 7中源码安装MySQL 5.7.16 (亲测成功)

最近在CentOS 7中源码安装MySQL 5.7.16&#xff0c;发现MySQL5.7.6以后的安装方式真的与以前版本的MySQL安装方式大大的不同呀。不自己安装一把&#xff0c;下面这篇文章是通过自己的安装过程总结的一篇安装教程&#xff0c;有需要的朋友们可以参考借鉴&#xff0c;下面来一起看…

css动画定义,CSS3中Animation动画的定义和调用

现在经常会看到一些门户网站的专题使用到CSS3的动画&#xff0c;咋也不能落伍&#xff0c;在此这梳理下动画知识吧&#xff0c;便于后面用到。接下来介绍下Animation动画的定义和调用&#xff0c;在介绍Animation之前需要了解下Keyframes&#xff0c;英文意思就是关键帧&#x…

mysql5.7+proxy_mysql 5.7+mysql-proxy 0.8.5 读写分离

主从环境&#xff1a;mysql操做系统&#xff1a;CentOS6.5_x64linux主服务器Master&#xff1a;192.168.0.103sql从服务器Slave&#xff1a;192.168.0.105后端调度服务器MySQL-Proxy&#xff1a;192.168.0.104服务器1、mysql主从复制tcp2、mysql-proxy实现读写分离测试一、安装…

mysql 账户管理_Mysql账户管理原理与实现方法详解

本文实例讲述了Mysql账户管理原理与实现方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;账户管理在生产环境下操作数据库时&#xff0c;绝对不可以使用root账户连接&#xff0c;而是创建特定的账户&#xff0c;授予这个账户特定的操作权限&#xff0c;然后连接进行…

navicat for mysql 用户_Navicat for MySQL 怎么/怎么添加管理用户?Navicat for MySQL 添加管理用户教程_37游游网...

【37游游攻略】为了保证数据库的安全&#xff0c;对操作用户分级授权是非常有必要的&#xff0c;Navicat for MySQL 给我们提供了一个非常强悍又非常便捷的用户管理系统。点击位于连接右侧的用户命令&#xff0c;随之弹出管理用户的界面&#xff0c;Navicat for MySQL 系统默认…

js如何上传大文件到服务器,js将文件上传到远程服务器

js将文件上传到远程服务器 内容精选换一换将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式。本节为您介绍本地Windows计算机通过远程桌面连接&#xff0c;上传文件至Windows云服务器的操作方法。Windows云服务器可以访问公网。在本地Windows计算机上&#xff0c…

增强服务器安全性能,加强Linux服务器安全的20项建议

很多人都说 Linux 在默认配置下很安全&#xff0c;我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位&#xff0c;用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。与恶意用户做斗争对于所有 Linux 系统管理员来说都…

阴阳师师徒系统不同服务器,阴阳师体服师徒系统未收录改为随机SSR

昨天下午&#xff0c;受到很多争议的体服“师徒系统”更新啦&#xff01;新版的“师徒系统”修改了徒弟的条件&#xff0c;总的来说能剔除压级大佬&#xff0c;并且之前奖励未收录SSR降低为随机SSR式神&#xff0c;难怪很多阴阳师都说&#xff1a;“大快人心&#xff01;”的确…

Mysql union联合查询_Mysql联合查询union和union all的使用介绍

一、UNION和UNION ALL的作用和语法UNION 用于合并两个或多个 SELECT 语句的结果集&#xff0c;并消去表中任何重复行。UNION 内部的 SELECT 语句必须拥有相同数量的列&#xff0c;列也必须拥有相似的数据类型。同时&#xff0c;每条 SELECT 语句中的列的顺序必须相同.SQL UNION…