VUE3-工作笔记-06

news2024/11/15 9:51:16

本节:总结11月份学习的内容

1.如果有很多个功能是一样的,那就先写一个测试很多次,确定没有bug再全部改,不然辛辛苦苦全部改了之后,发现还是有bug又要重新改,最好是写成组件的形式,写成hook。

2.命名规范:如果是一样功能的方法,不同页面也叫一样的名字,这样比较规范,复制的时候也不容易出错。

命名规范:

获取单个对象用 get 做前缀,或者value做后缀。

获取对象数组用 list 做后缀。查询用 query/search 做前缀

插入用 add/save 做前缀。编辑、更新用 edit/update 做前缀。数组对象用 List 做后缀。类名首字母大写。提交方法叫 onSubmit,或者其他的操作可以是deleteClick这样。

命名需要符合语义化,如果函数命名,可以采用加上动词前缀:

can 判断是否可执行某个动作;has 判断是否含有某个值;is 判断是否为某个值

get 获取某个值;set 设置某个值; isShow: '是否显示', isVisible: '是否可见',

isLoading: '是否处于加载中', isConnecting: '是否处于连接中',

isValidating: '正在验证中', isRunning: '正在运行中', isListening: '正在监听中'

前端命名规则与各个场景的命名方法,解决你取变量名的痛苦!!!(二) - 掘金

固定的大小值,比如表格,这些也记录下来,就不用老是找了;表格的栏目之间的位置摆放也要有想法,如果有的值是固定文字大小,而且你其他地方也需要位置,那那个已知的规定文字大小,就要设置好位置,不要占太大空间,包括下拉框之类的,这种位置空间上的小细节,一般边距是8px的倍数来变化。(在没有ui设计的情况下)

3.是值的时候才用ref,是对象就用reative。但是,要注意reatvice赋值普通数据会失去响应式。

4.分页的写法,既然分页一点就变化,但是我又要调用搜索方法,那么就直接把要传的值放在搜索里面,点击搜索之后,获取数据的值才赋值到,不然初始化的时候就问空,这样获取值又可以总是获取到全部。

5.一些常用的js函数:

string.replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;

字符串转为数字: Number(str); parseInt(12.312)//将任何内容为整数(小数、字符串等)

把数字转换为字符串: num.toString(),num.toString(2||8||16 );//转换成对应的2、8、16进制

 Math.floor(123.2312)向下取整 ;Math.ceil( ) 向上取整;Math.round(2.60);//四舍五入取整数

a.toFixed(2) 取两位小数 //进行四舍五入并保留固定小数位;a.toFixed() 这是取整

Math.pow()方法将基数返回指数幂,即,基数指数。Math.pow(5, 3);// 125

Math.abs(-7.25);//返回7.25   abs()取一个数的绝对值,感觉就是取正数。x 的绝对值。如果 x 不是数字返回 NaN,如果 x 为 null 返回 0。

str.match(正则表达式) // 可以字符串中检索指定的值,或者是匹配一个或多个正则表达式

 array.indexOf(“检查的字符”)/lastIndexOf() 返回检索字符所在的位置

array.concat(); //连接多个字符串,或者数组。var str1 = "Hello ";var str2 = "world!";
var n = str1.concat(str2);

array.every(函数判断) 方法用于检测数组所有元素是否都符合指定条件,返回false或者true()。

array.fill() 方法用于将一个固定值替换数组的元素。

array.pop() 方法用于删除数组的最后一个元素并返回删除的元素 ;

array.shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

array.filter(函数判断),用于过滤出一个新的数组,新数组中的每个元素是通过判断,符合条件的所有元素

例子:array.filter((el) => userList.includes(el.id)) 

filter((el)=>{   判断内容})就可以对元素的状态进行一个函数的判断,挑出你要的(过滤出你要),组成一个新的数组,不会影响原来的数组。

Map的item和some的el是一样的都是单个的对象

ps:如何把数组对象中的属性单独提取出来成为一个新的对象数组?

给对象添加元素,直接  对象名.添加的元素名 = 添加的元素内容;

删除对象里面的属性,也是直接,delete  对象名.属性名。

ps:删除数组里面符合某个条件元素的对象。 先遍历循环,然后判断,slipce掉对应的数组。

spaceList.value.splice(i, 1);

str.slice(-1) 提取字符串的某个部分,并以新的字符串返回被提取的部分
string.slice(start(1开始位置),end(结束位置))
start如果为负数,则从尾部开始截取

 for (let j = 0; j < props.judgeSelectDevice.length; j++) {
      if (spaceList.value[i]?.id == props.judgeSelectDevice[i]?.id) {
        spaceList.value.splice(i, 1);
      }
    }

array.some():判断新添加的内容,是不是已存在的

div:
<a-input
            v-model:value="denyIp"
       
          ></a-input>
          <a-button @click="handleAddDenyIp(denyIp)">添加</a-button>

script:
// 添加限制ip
const handleAddDenyIp = (denyIp: string) => {
  if (denyIp && !data.denyIp.includes(denyIp)) {
    data.denyIp.unshift(denyIp);
  }
};

JavaScript Array 对象 | 菜鸟教程 :这是对象和数组的方法大全

6.使用ant design 滑轮组件的时候,max不会渲染计算之后的值,加上max之后,v-model的值初始化的时候也不显示,原因是我渲染值的顺序有问题,一开始计算的max的值没有获取到。组件有时候也会有问题,但是属性一般都是可以动态获取的,所以要检查自己的代码,都打出来看看,或者百度。

7.vue3模态框初始化数据,点击第一次没获取到,点击第二次才获取到,使用nextTick,实现异步获取的方法

const showModal = async () => {
  await nextTick();
  visible.value = true;
  getFusion();
};

8.值一直获取不到,可能是ref的类型,忘记加 .value, 所以赋值的时候没赋值到值。如果在渲染div的部分里面ref属性的值加了. value,可能会报渲染问题的错误

9.VUE中computed 、created 、mounted 的先后顺序

(1).computed 、created 、mounted 的先后顺序

created => computed => mounted

(2).父子组件生命周期执行顺序(子组件先挂载好,在进行父组件的挂载)

​ 页面初始化时: 父beforeCreate -> 父created -> 父beforeMount ->子beforeCreate -> 子created ->子beforeMount -> 子mounted-> 父mounted

页面销毁时: 父beforeDestroy -> 子beforeDestroy ->子destroyed->父 destroyed

销毁时也是子组件先销毁要先于父组件销毁

(3).页面跳转的生命周期执行顺序

​ 旧页面跳转到新页面: 新页面created > 新beforeMount > 旧beforeDestroy > 旧:destroyed > 新mounted

(4).computed 、watch、created 、mounted 的先后顺序

immediate 为false时: created => computed => mounted => watch

immediate 为true时: watch =>created=> computed => mounted

昨天纠结了很久,以为是生命周期的问题,因为一开始是跳了个0,然后才出现真实的数字,但是,页面取到的还是原先的数字。但是计算器的属性就是有变化,它就会计算,后面发现原因是其实数字是获取到了,但是其他地方进行了一个计算,要不就是数字取值的时候就有问题,所以看起来有问题,以后遇到这种问题,要输出来看,然后再看看其他地方。

10.v-model' directives require the attribute value which is valid as LHS.

     v-model的值必须是一个数据变量,而不是一个条件值或计算值。如果你需要用条件值或计算值,那么建议不要使用v-model,而是手动传递props并侦听change事件。

11.Unhandled error during execution of render function 执行渲染函数期间出现未处理的错误

有时候就是多了个value,在渲染div的时候,一些部分不应该有value

12.下拉框,绑定多个值,两种方法:

(1):value="`${item.dev},$(item.path)`" 

再通过split(",")以逗号分割,赋值。

 ps:但是太麻烦了,而且唯一命名里面有","   那就容易数据出错,所以用方法二。

方法二:通过change变化监听获取到的值,:record="",

13.ant design校验规则第二层,或者创建个新数组。

14.判断数字转换成对应的文字:写方法,传值,进行if判断,return "内容"。

 

15.ant.design Table组件点击一个选项框却把所有选项都选中了,因为要绑定一个唯一值,这样:rowKey="ipAddress"就可以了。

要不就是没有点击的内容,那是因为没有绑定v-model值 

16.calc() 函数用于动态计算长度值。

需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);height:calc(100%-400px)

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

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

相关文章

ACM第三周---周训---题目合集.

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石.CSDN &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​ &#x1f4e3;系列专栏&#xff1a;ACM周训练题目合集.CSDN &#x1f4ac;总结&#xff1a…

微服务框架 SpringCloud微服务架构 10 使用Docker 10.7 数据卷命令

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构10 使用Docker10.7 数据卷命令10.7.1 数据卷10.7.2 操作数据卷10.7.3 直接…

度量方法总结

本文目录0 引言1 度量差异性1.1 闵可夫斯基距离&#xff08;Minkowski distance&#xff09;1.1.1 欧氏距离&#xff08;Euclidean distance&#xff09;1.1.2 曼哈顿距离&#xff08;Manhattan distance&#xff09;1.1.3 切比雪夫距离&#xff08;Chebyshev distance&#xf…

[附源码]JAVA毕业设计课程网站设计(系统+LW)

[附源码]JAVA毕业设计课程网站设计&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&…

Spring Boot 框架整合 MyBatis 连接数据库,详细说明

在我们日常的开发过程中&#xff0c;肯定不可避免的会使用到数据库以及 SQL 语句。比如&#xff0c;刚开始学习 Java 的时候可能会遇到 JDBC&#xff0c;它是连接 Java 和数据库的桥梁&#xff0c;我们可以使用 JDBC 来建立与数据库之间的连接并且执行相应的 SQL 语句。虽然 JD…

数据结构—List集合

文章目录一、ArrayList集合1&#xff0c;ArrayList集合的特点2&#xff0c;ArrayList集合的一些方法添加元素个数获取指定位置元素指定位置插入元素替换元素移除元素判断是否为空判断是否包含元素移除指定元素迭代器遍历集合二、LinkedList集合1&#xff0c;LinkedList集合的特…

Ra-01SC/Ra-01SCH模组驱动

目录简介硬件准备设备清单接线说明重要函数说明调试联系我们简介 本文档主要介绍Ra-01SC/Ra-01SCH模组驱动例程使用方法&#xff1b; 硬件准备 设备清单 硬件数量Ra-001SC/Ra-01SCH 模组2个杜邦线若干USB转TTL模块2个STM32F103C8T6开发板2个安卓线2根 接线说明 STM32F103C…

[论文阅读] 颜色迁移-直方图渐进式颜色迁移

[论文阅读] 颜色迁移-直方图渐进式颜色迁移 文章: 有2篇相关的文章, 都为同一作者 [Progressive histogram reshaping for creative color transfer and tone reproduction], [code未公开][Progressive color transfer for images of arbitrary dynamic range], [code未公开]…

qt模块feature QT_FEATURE_* qt_lib_*.pri QT_CONFG qtConfig

qt为方便对代码进行删减&#xff0c;将代码拆分成很多模块&#xff0c;对每个模块梳理出feature&#xff0c;为了简化程序的使用和其他目的&#xff0c;qt还对每个模块分成public模块和private模块&#xff08;比如core分为core和core-privare模块&#xff0c;但两者公用同一个…

迭代器失效问题

目录 一、vector迭代器失效问题 1、resize,reserve,insert,assign,push_back可能引起底层空间改变 2、指定位置元素的删除操作erase 3、Linux下&#xff0c;g编译器对迭代器失效的检测不是非常严格&#xff0c;处理也没有vs下极端 4、与vector类似&#xff0c;string在插入…

java swing(GUI) MySQL实现的飞机票预定系统源码带视频运行教程

大家好&#xff0c;今天给大家演示一下由Java swing实现的飞机票预定系统&#xff0c;系统数据库原本采用的是Oracle&#xff0c;我又改了一个mysql版本的&#xff0c;所以这套系统有两个版本&#xff0c;一个是mysql数据库版的&#xff0c;一个是Oracle数据库版&#xff0c;演…

TypeScript是强类型,静态类型的Java Script

1. 编程语言的分类 As we all know, JavaScript 是弱类型&#xff0c;动态类型的编程语言。 首先我们来解释一下这几个名词&#xff1a; 动态类型语言&#xff1a;在 运行期间(Runtime) 才去做数据类型检查的语言。静态类型语言&#xff1a;在 编译其间(Compile) 就进行数据…

【Redis】事务秒杀案例

一、背景 在日常购物时&#xff0c;经常会有商家开展限时秒杀活动&#xff0c;我们如何使用redis来实现这种场景呢 二、业务代码 首先我们可以想到的是&#xff0c;我们可以把商品剩余数量和成功秒杀商品的用户id放在redis中 下面是我们的业务代码 package com.decade.con…

2022物联卡平台排名前十的公司

2022年物联网行业开始爆发&#xff0c;针对于企业设备联网的物联卡就显得格外重要了&#xff0c;而共享单车&#xff0c;移动支付&#xff0c;智慧城市&#xff0c;自动售卖机等企业采购物联卡会面临着各种问题&#xff0c;低价陷阱&#xff0c;流量虚假&#xff0c;管理混乱&a…

【Spring框架】经典的 9 种设计模式,面试工程师必学知识

文章目录1.简单工厂(非23种设计模式中的一种)实现方式&#xff1a;实质&#xff1a;实现原理&#xff1a;设计意义&#xff1a;2.工厂方法实现方式&#xff1a;实现原理&#xff1a;例子&#xff1a;3.单例模式4.适配器模式实现方式&#xff1a;实现原理&#xff1a;实现过程&a…

[Swift]国际化

一、添加本地化语言 比如这里&#xff0c;我们添加了联合国六种工作语言&#xff08;汉语&#xff0c;英语&#xff0c;法语&#xff0c;俄语&#xff0c;阿拉伯语和西班牙语&#xff09;。 二、纯代码本地化 1. 创建本地化文件 默认文件名为“Localizable”&#xff0c;不要…

【教程】如何在服务器上部署豆瓣小组抢沙发聊天机器人

由于在自己的电脑上运行软件比较麻烦&#xff0c;毕竟自己电脑还要用呢。所以这里选择吧软件放到服务器上去运行。 1、选择性价比最高的轻量应用服务器&#xff1a;https://url.cn/pXUtW9f8 2、一定要选择windows server&#xff01;&#xff01;&#xff01; 3、等待系统初始…

静态和默认路由配置-----计算机网络

拓扑图 实验场景&#xff1a;公司有一个总部和两个分支机构&#xff0c;其中AR1为总部路由器&#xff0c;其他两个为分支机构&#xff0c;ip网段如上图所示&#xff0c;现在通过配置路由器让三个地区可以互相通信。因为网络规模不大&#xff0c;所以采用静态路由和默认路由的方…

Postman进阶篇(十一)-在脚本中使用pm对象访问接口请求(pm.request.*)

在之前的文章中介绍过postman中的两个脚本——pre-request script或test script&#xff0c;在这两个脚本中都有使用到pm对象。&#xff08;pre-request script详细介绍、Test script详细介绍&#xff09;pm对象是在postman的脚本中非常重要&#xff0c;也是十分常用的方法。本…

文华财经期货多空趋势指标公式,期货幅图高抛低吸逃顶抄底精准买卖点信号系统

刚开始接触交易时&#xff0c;看着满屏的K线图&#xff0c;各种的 指标&#xff0c;脑子里自然会认为交易时一个非常复杂的事情&#xff0c;复杂到处处透露着神秘感&#xff0c;随着对交易学习的不断深入&#xff0c;看着厚厚的交易书籍&#xff0c;还 有复杂的图形演变、复杂的…