Vue项目中,默认的情况,如果某个页面跳转到了下一页,在下页面返回后($router.go(-1)),上一个页面总是会自动刷新(进入created方法),导致上页面的状态就没有了,这样的方式往往不是我们想要的! 可以使用<keep-alive></keep-alive>来解决这个问题,它是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 在 App.vue里面(组件最开始的地方),有如下代码: <template> <div id="app"&g…
Vue项目中,默认的情况,如果某个页面跳转到了下一页,在下页面返回后($router.go(-1)),上一个页面总是会自动刷新(进入created方法),导致上页面的状态就没有了,这样的方式往往不是我们想要的! 可以使用<keep-alive></keep-alive>来解决这个问题,它是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。 在 App.vue里面(组件最开始的地方),有如下代码: <template> <div id="app"&g…
如果一个Vue项目比较大,开发人员也多的情况下,如果一个路由文件都放在一起,不利用协同开发,容易引起冲突 Vue的脚手架默认搭好后,路由文件是在src/router/index.js里面,里面包含了所有的路由信息,我们可以对整个项目进行梳理,按照逻辑功能模块进行拆分,比如拆一个消息(message)模块,相关的路由我们都建立在src/router/message.js: const routers = [ { path: '/message/home', name: 'messageHome', title: '消…
如题,分享一个自用的阿拉伯数字金额转成中文大写,支持负数,单位元,小数支持4位数(角、分、毫、厘) 不是我写的,网上抄来的,稍加修改,已用在项目中,亲测可用。 //测试 console.log(moneyNumToChinese(-3.14)); // 负 叁元壹角肆分 console.log(moneyNumToChinese(10002)); // 壹万零贰元整 //***************** 把阿拉伯数字金额转换成中文大写数字的函数(可处理负值,小数可精确到4位厘,) ****************…
在之前的文章中,后端SpringBoot解决跨域问题,使用的如下方法:https://blog.terrynow.com/2021/08/18/springboot-api-allow-cross-origin-how-to/ 不过前端vue也要做相应的配置,例如使用Proxy的方式请看:https://blog.terrynow.com/2021/08/31/vue-axios-cors-problem-sovled/ 不过本次发现一个不使用Proxy的方式: 首先,如果不做任何修改,我们用axios请求其他链接…
从一串含有地址的字符串中,提取出省份或者城市,例如,从『江苏省苏州市吴中区吴中大道1188号』或者『上海市浦东新区世博大道1000号』提取出『苏州市』和『上海市』 以下JS代码以提取城市为例,如果提取省份,稍加修改便可。 /** * 从地址中提取城市 **/ function parserCityFromAddress(address) { var city = ''; if (address.indexOf('市') > 0) { var regex = /.+?(省|市)/g; var strings =…
我们使用NodeJS或者npm安装依赖包的时候,因为默认的npm安装源是国外的https://registry.npmjs.org,由于众所周知的原因,安装时候,会很慢,而且有时候,会直接安装失败。 可以将默认的源替换为国内的源,就可以加快安装速度了,在这方面,阿里云是个活雷锋,之前的文章中,有提到: Java的Maven替换为阿里云的安装源:https://blog.terrynow.com/2021/04/19/idea-change-maven-repository-to-speed-up-import/ G…
本文整理了使用JS检查输入的String是否符合复杂度要求,包含常用的几种(字母、大小写、特殊符号、长度要求等) 密码必须包含字母、数字和特殊符号(特殊符号可以是:`~!@#$%^&*()-=_+;':",./<>?,可以根据实际情况修改),且长度是6-32位: console.log("isValidPassword:" + isValidPassword("11,A1")) //6-32位,且包含字母、数字和特殊符号 function isValidPassword(password) { …
Javascript,有一个Array,需要根据Array里面的value来删除特定元素, 例如: var array = ['Tom', 'Jerry', 'Jack']; 我们需要删除Jerry后,剩下:['Tom', 'Jack']; 使用indexOf先找到元素,再使用splice删除 // 使用indexOf先找到元素,再使用splice删除 var index = array.indexOf('Jerry'); if (index !== -1) { array.splice(index, 1); } …
前面的文章(https://blog.terrynow.com/2020/12/23/javascript-debounce/)里是介绍的限制频率,延时去抖动,即:N秒内,仅允许最后一次执行,也就是说理论上用户一直不停的操作下去,永远也得不到执行,现在的要求是,即使这种情况下,也要间隔一定的时间运行(即限制频率调用) 这个要比之前的简单实现,因为只要设定一个状态,或者设定一个时间戳变量,在setTimeout函数里判断下就可以了 // 方式1 function throttle(fn, delay) { var p…
开发业务系统经常需要打印打印某个div(如打印业务系统生成的表单),而不是打印整个页面,这里分享我自用的工具代码,并不依赖框架,在原生Javascript下或者Vue下都能使用。 首先准备printArea.js,如下,保存成printArea.js,后面在html里引入js的时候用到。 /* * Copyright (c) 2021. * * Unless required by applicable law or agreed to in writing, software * distributed unde…