js小技巧笔记,积少成多

121 阅读1分钟

数组排序(忽略大小写)

['b','c','a','d'].sort((i,j)=>{ return j.toLowerCase() < j.toLowerCase(); }); 这样写是有问题的,通过百度我发现,把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。所以我们最好是使用本地排序规则来进行排序。像下面这样: ['b','c','a','d'].sort((i,j)=>{ return j.toLowerCase().localeCompare(j.toLowerCase()); });

Vue(nuxt)路由入口(page)刷新问题

当三个页面共享一份代码时,其中两个页面使用模块化引入和导出,如下:

<script>
import addressInfo from "./address_info";
export default addressInfo;
</script>

这样就可以做到三个页面共享一份代码了,但是问题在于,虽然nuxt自动将Page下的文件夹定义为了路由,我再这三个页面跳转时,url和路由参数都刷新了,但是页面数据却没有刷新,猜测是页面实例被认为不需要替换,所有没有刷新。解决思路如下:

<nuxt :key="$route.fullPath" />

将路由入口绑定当前路由的fullPath,这样就能在路由切换时,刷新页面了。