当前位置: 首页 > Web前端 > vue.js

2020年2月遇到的知识点整理

时间:2023-03-31 23:35:00 vue.js

*注:本文是工作中遇到的知识点整理,涉及的东西价格比较比较乱。如有错误,欢迎指正指导1:iframe会话丢失2:vue超过个数显示1带省略号,使用vue中的filter过滤器显示效果123456···123456HTML代码{{哈希名称|ellipsis}}JS代码过滤器:{ellipsis(value){letlen=value.length;if(!value)return''if(value.length>12){returnvalue.substring(0,6)+'···'+value.substring(len-6,len)}返回值}}2、tool.js写的tool展示效果...123456123456js代码//name后12位超过12位,后面加个省略号constellipsis=(value)=>{if(!value)return''letlen=值.长度;if(value.length>12){return'...'+value.substring(len-12)}returnvalue}export{ellipsis}三:VueRouter的params传递引用的注意点是使用vue。需求要求路由跳转,路由上不显示具体参数。所以我一起使用参数和路径。页面跳转后,获取不到this.$route.params。注意事项:1.如果使用path,params会被忽略。2.params一般与name一起使用,而不是Path。3、使用params传值时,不使用/test/:id上面的路由说明,当用户刷新时,params的值会丢失。所有这些值都需要缓存和保存。处理4:布尔值作为(缓存+路由参数)传值问题他们都会变成字符串。使用时,需要对其进行处理。字符串转布尔值的解决方法是1.如果字符串==='true',则为布尔值true,否则为布尔值false2.直接使用JSON.parse()2,在使用判断字符串==='true'为布尔值true的方法时,否则为布尔值false,相当不方便,每个值都需要判断一次。代码是愚蠢和冗余的。JS中有六种情况为假:0、"、null、undefined、NaN和false,其他(包括{}、[]、Infinity)为真。我认为数字0的布尔值是假的,所以用0和1来存储,这样取出来的数据操作起来更方便,我们把数字0和1存储起来,取出来的时候是'0'和'1',转成数字types.Number()强制转换类型,是的this.home=Number(this.$store.state.home)this.inventory=Number(this.$store.state.inventory)五:HTTP协议网络请求状态码HTTP协议网络请求状态码六:js差异不同浏览器和设备1、判断当前页面是否在微信浏览器中打开方法一:varua=navigator.userAgent.toLowerCase();varisWeixin=ua.indexOf('micromessenger')!=-1;if(isWeixin){returntrue;}else{returnfalse;}方法二:函数is_weixn(){varua=navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i)==“微信使”){返回真;}else{返回错误;}}判断浏览器。包括判断IE浏览器、Opera浏览器、Safari浏览器、GoogleChrome、Firefox浏览器等。varbrowser={versions:function(){varu=navigator.userAgent,//返回客户端发送给服务器的user-agentheader的值app=navigator.appVersion;//返回的平台和版本信息thebrowserreturn{//移动端浏览器版本信息trident:u.indexOf('Trident')>-1,//IEkernelpresto:u.indexOf('Presto')>-1,//operakernelwebKit:u.indexOf('AppleWebKit')>-1,//Apple,Google内核gecko:u.indexOf('Gecko')>-1&&u.indexOf('KHTML')==-1,//Firefox内核mobile:!!u.match(/AppleWebKit.*Mobile.*/),//是否是移动端ios:!!u.match(/\(i[^;]+;(U;)?CPU.+MacOSX/),//ios终端android:u.indexOf('Android')>-1||u.indexOf('Linux')>-1,//android终端或uc浏览器iPhone:u.indexOf('iPhone')>-1,//是否为iPhone或QQHD浏览器iPad:u.indexOf('iPad')>-1,//是否为iPadwebApp:u.indexOf('Safari')==-1//是否web应该是无头无底的程序phoneApp:u.indexOf('VPiao_App')!=-1,//判断是否为使用weixin的app:u.toLowerCase().match(/MicroMessenger/i)=='micromessenger'//微信浏览器内核};}(),language:(navigator.browserLanguage||navigator.language).toLowerCase()//返回当前浏览器浏览器语言}使用://document.writeln("语言版本:"+browser.language);//document.writeln("是否为移动端:"+browser.versions.mobile);如何通过JS判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开if(browser.versions.mobile){//判断是否是移动设备打开下面浏览器代码varua=navigator.userAgent.toLowerCase();//获取判断对象if(ua.match(/MicroMessenger/i)=="micromessenger"){//打开微信}if(ua.match(/WeiBo/i)=="weibo"){//在新浪微博客户端打开}if(ua.match(/QQ/i)=="qq"){//在QQ区打开}}else{//否则在PC浏览器中打开}七:git相关一点操作1、删除本地分支+删除远程分支gitbranch//查看本地分支列表gitbranch-d分支名//删除本地分支gitbranch-a//查看远程分支列表gitpushorigin--deleteremotebranchName//删除远程分支2、当可能用到gittag的时候在一些开发的关键时期,用tags来记录这些关键时刻,比如release版本,重大修改,而你pgrades,将使用标签来记录这些时刻,永久标记您项目中的关键历史时刻。tag会记录版本的commit号,方便后面回溯和标注。gittag//列出已经存在的标签,加上-l命令可以使用通配符过滤标签。例如:gittag-l"v3.3.*"gittagtagName//gittagv1.0创建一个名为v1.0的标签gittag-atagName-m"mytag"//添加`-a`参数创建一个带有注释的标签,注释信息由-m指定。如果不传`-m`,创建进程系统会自动打开编辑器让你填写备注信息gittag-a0.1.3-m“Releaseversion0.1.3”//gittag是一个命令.-a0.1.3是添加一个名为0.1.3的标签。-m后面是标签的注释gitshowtagName//查看标签的详细信息,包括commit等相关操作//提交gitadd.gitcommit-m"fixedsomebugs"gittag-a0.1.3-m"Releaseversion0.1.3″//将commit标签分享到远程服务器gitpushoriginmastergitpushorigin--tagsgittag--list//查看已有标签列表gitcheckout[tag/branch/commit]//切换到指定标签/branch/commit是这个命令gittag-d0.1.3//删除标签gitpushorigin:refs/tags/0.1.3//删除远程服务器的标签3,拉取远程分支到本地gitfetchorigindev(dev为远程仓库的分支名)//拉取远程分支到本地。gitcheckout-bdev(本地分支名)origin/dev(远程分支名)//在本地创建分支dev并切换到本分支4、代码回滚gitlog-3//查看前三个commit日志记录\-3By打个比方,可以得到任意数量的提交日志记录gitreset--hardHEAD^//返回上一个版本gitreset--hardHEAD~3//返回前3次提交,以此类推,return之前返回ncommits`returnstep(commandbelow)`gitreset--hardcommit_id//返回/输入指定commit的sha码gitreset--harde377f60e28c8b84158//e377f60e28c8b84158为commit_id返回指定版本,不要keeptheoriginalchangedcodegitreverte377f60e28c8b84158//回滚到指定版本,保留原来的变更代码,生成新的提交gitpush-foriginmaster//强制提交(此时代码已经回滚,你的当前分支状态是你在上一步中指向的版本)我如果你只是错误地提到了代码并且想要保留代码更改,那么在回滚步骤中使用revert命令而不是reset。两者的区别在于:revert是放弃指定的提交修改,但是会生成新的提交,需要填写提交评论,之前的历史记录都在;reset是指将HEAD指针指向指定的提交,历史记录中不会有放弃的提交记录。八:vue弹出框加对应遮罩层组件九:vue加载组件十:移动端H5实现图片上传十一:H5开发Android机型点击输入框调用输入法,输入框被屏蔽键盘。十二:H5页面长按复制功能实现。默认禁止长按复制功能。对于这个功能,一个css声明-webkit-user-select:auto;需要允许整个页面长按复制:*{-webkit-user-select:auto;}user-select:none|auto|text|contain|all;属性值:none:元素和子元素的文本不会被选中text:文本可以被选中auto:文本将基于浏览器的默认属性Makeselectionall:当所有内容作为一个整体可以被选中时。如果你双击或者上下文点击一个子元素,被选中的部分将是最高祖先元素包含和从子元素向上回溯的元素:可以选择文本,但是选择范围受限于元素的边界元素,即所选文本将包含在该元素的范围内。仅支持InternetExplorer兼容性:firefoxbrowser-moz-user-select:none|text|all;safari,chromebrowser-webkit-user-select:none|text|all;Safari不支持该属性值,只能使用none或text,或者在html的tag属性中使用iebrowser-ms-user-select:none|text|element;