
js
jsyxiaoba
快乐学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
记录 UmiJs Model-namespace 不能重名问题
背景:部分项目目录结构: page文件夹 a文件夹 models文件夹 comModel.js b文件夹 models文件夹 comModel.js问题:comModel.js同名导致的问题:页面挂载完成,接口无法请求;重新刷新页面,接口正常请求查询官网只有 model的注册说明,并无 namespace 属性详细说明,如图:按照官网的说明,page model 在 production 时按需载入,在 development 时全量载入,原创 2021-10-25 14:13:34 · 902 阅读 · 0 评论 -
react将一个页面作为子组件的使用方法
其实这个并没有什么好说的,只是当时的业务和权限控制有关联,脑子突然有点短路了,把我整不会了,后来突然想明白了,权限不也是数据嘛,把权限数据传给这个页面组件不就行了。下面说说具体的操作:先说场景:有个 DT 页面,上面有一些按钮,需要用权限控制这些按钮的显示隐藏,其实就是不同的用户的权限分配问题。有 A B C 三个页面,从这三个页面分别进入 DT 页面,看到的其他数据是不一样的,看到的按钮也得是不一样的,只是 UI 布局和字段名相同而已。解决方法:将 DT 页面作为公用的子组件使用增加三个路原创 2021-07-03 14:01:26 · 578 阅读 · 0 评论 -
antd + react 实现左侧菜单层级状态下展开并选中 且与面包屑导航保持一致
不牵涉权限问题,只说数据层面的,即以当前的返回数据作为源数据进行处理先说左侧菜单这里说的左侧菜单层级显示只有两层,但是页面的层级可能有三级甚至四级的情况,当三级或者更多层级页面被渲染的时候,左侧菜单只选中二级菜单。下面看例子// 左侧菜单要求显示成这样的层级:数据管理 |————订单管理很明显,菜单只有两级 ,当出现上面的情况时,三级及以上的层级页面必定都是二级菜单的子页面,且都是层层嵌套的页面。如果这里理解了,那就该说说路由的问题了。为什么提到路由呢?因为菜单的展开选中都要与原创 2021-07-02 13:34:22 · 1437 阅读 · 2 评论 -
NodeJs支持ES Module规范
首先,Node.js 版本不能低于 v13.2.0,我是犯了这个错误。用v12的环境去执行的代码,老是报错,最后才醒过来一查版本,果断升级到14.17.0(这里可以使用node版本管理工具进行操作,window系统推荐使用 nvm ),这个版本是目前比较稳定的一个版本。这个是预先写好的js文件,当然这个需要在node环境下,所以需要先安装node包,这里就不演示了import { of } from "rxjs";import { map } from "rxjs/operators";const原创 2021-06-24 13:58:37 · 1047 阅读 · 1 评论 -
这次浏览器被我搞崩了
一次无聊的操作,各种浏览器都被我搞崩溃了,先来一段代码for(let i = 0; 2 > 1; i++){ console.log(i)}for(let i = 0; true; i++){ console.log(i)}for(let i = 0; ; i++){ console.log(i)}以上任何一段代码都不要轻易在浏览器里执行,结果只有一个,陷入死循环,内存泄露了,浏览器瞬间就崩了,但是各个浏览器的表现还都不同,接下来来看一下这些浏览器的表现原创 2021-04-23 19:56:39 · 318 阅读 · 0 评论 -
js解构出来的值与原值具有相同的引用地址
const obj = { a:[ {a1:1}, {a2:2} ] };const { a } = obj;a.splice(0,1)console.log(obj, a, a === obj.a)// {a: Array(1)} [{…}] true正因为 a 与 obj.a 有相同的引用地址,修改 a 才会导致 obj.a 也跟着变化,用 === 符号判断也证明了这个问题...原创 2021-04-20 10:21:00 · 487 阅读 · 0 评论 -
js新旧数据比较器-ComparatorsUtils
在开发过程当中也许会遇到新旧数据的比较,把操作过的数据传给后端,比如:新增的,修改过的,删除的。接下来看代码:/** * 此工具为数据比较器, * 可返回新增的数据,修改的数据,删除的数据,以及三种数据 * 并将这些操作过的数据都添加上标记 operationType 1新增 2修改 3删除 * 后端可根据标记类型进行操作*//** * @param willUploadData 将要上传的数据 * @param rawData 源数据(旧数据) * @param ret原创 2021-01-13 19:06:12 · 1063 阅读 · 0 评论 -
数字方法--按零补位
今天记录一个与数字相关的处理方法:按零补位 /** * 按0补位 * @param data 需要被处理的数字 * @param n 位数 */ const ZeroPadded = (data, n) => { const pad = function(){ let tbl = []; return (data, n) => { if(Number(dat原创 2021-01-10 15:53:14 · 600 阅读 · 0 评论 -
web Worker -- SharedArrayBuffer -- Atomics
今天对web Worker小试牛刀众所周知,js是单线程执行的,很容易被阻塞,所以主线程在执行的时候,web Worker可以在后台开启一个子线程执行一些代码而不阻塞主线程的执行。那什么情况下代码应该放在子线程里呢?比如:遇到计算量比较耗时的时候,将这部分代码放入子线程进行执行,再将执行结果抛给主线程,(总不能让主线程一直等待这段代码执行完毕才进行下一步吧,如果耗时很长,页面都卡死了)html文件<!DOCTYPE html><html lang="en"><hea原创 2020-11-27 17:58:14 · 2660 阅读 · 0 评论 -
let与闭包
闭包是js里面很重要的一环,常见的闭包在这里举个简单例子:var f = function(){ var i = 0; return function(){ i++; console.log(i); }}var s = f();s(); // 1s(); // 2s(); // 3简单说就是:函数 f 内部的变量 i 被外部函数 s 引用到了,且 i 不能被释放...原创 2020-04-26 15:51:33 · 844 阅读 · 0 评论 -
记---es6+转es5--babel
假设电脑D盘有一个项目文件夹project,以此为根目录以 project/js 为例,1.安装node,按照官网一步步来就行,全局安装就行2.安装 babel-cli(1)检查项目根目录下是否有文件package.json,如果没有,在根目录执行命令行npm init初始化一个package.json文件即可(2)Babel 官方推荐将 Babel 安装在本地,因为 Babel 的...原创 2020-04-10 11:30:54 · 240 阅读 · 0 评论 -
前端请求异步与同步的区别
用jQuery的ajax做一个简单的例子,其他类型(如:axios)同理,看代码异步方式:$(function() { $.ajax({ type : 'post', async : true, url : '', cache : false, data : {}, ...原创 2020-01-21 18:56:41 · 6046 阅读 · 0 评论 -
react.js在IE9下遇到的兼容问题总结
使用react的过程中遇到不少兼容问题,推荐一个比较全的记录兼容问题解决方案的文章链接:React16和Antd如何在IE9环境下忍辱偷生转载 2019-11-14 15:00:29 · 1136 阅读 · 0 评论 -
解决create-react-app创建的项目在IE浏览器空白兼容性问题(支持IE11、IE10、IE9)
通过create-react-app创建的项目在IE浏览器空白一片,今天来说说解决方案,支持ie9–ie11。支持IE11的操作1.检查node_module里面有没有 ‘react-app-polyfill’ 模块,如果没有,通过命令 npm install react-app-polyfill --save 安装。2.如果有此模块,接下来需要进行修改配置文件 package.json"...原创 2019-11-14 14:36:46 · 3188 阅读 · 1 评论 -
学习vue时使用axios调用豆瓣API跨域问题
具体接口有哪些,自行百度吧例如:api接口:https://123456.com/v2/xxx/yyy由于豆瓣api跨域问题,因此不能直接通过ajax请求访问,我们通过vue-cli提供给我们的代理(proxy)进行配置即可,打开config/index.js,配置代理proxyTable属性如下://在proxyTable这个属性中,配置target属性为我们要代理的目标地址。prox...原创 2019-10-30 17:28:41 · 528 阅读 · 0 评论 -
面向面试题和实际使用谈promise
转自 博主 “阿尔卑斯de秘密” 文章“金三银四,金九银十”,都是要收获的季节。面对各种面试题,各种概念、原理都要去记,挺枯燥的。本文是面向面试题和实际使用谈一下Promise。Promise是什么? Promise是JS异步编程中的重要概念,异步抽象处理对象,是目前比较流行Javascript异步编程解决方案之一。这句话说的很明白了,Promise是一种用于解决异步问题的思路、方案...转载 2018-04-16 10:17:23 · 386 阅读 · 0 评论 -
判断浏览器是否支持Websocket
随着互联网的发展,通信方面的技术也在不断进步,比如http协议,https协议,这两个都是只有客户端发起请求时服务端才会返回响应,这已经满足不了现在人的需求,所以Websocket就应运而生,简称ws协议,wss协议,支持客户端和服务端都发送消息,但是事情总不会那么完美,ws的兼容性是一个比较现实的问题,目前主流的浏览器,Chrome,Firefox,Opera,Safari,IE都已经支持,不过...原创 2018-11-13 11:05:18 · 11582 阅读 · 1 评论 -
总结--上传插件Upload.js的使用
最近用了一个上传的插件,趁热总结一下,插件原文链接附上[插件原文链接](https://www.cnblogs.com/2050/p/3913184.html#plupload_doc2),简单说一下,这个插件可以上传很多种类型的文件,兼容性也可以,我这里只用到了图片的上传,所以就说这个功能了。先说一下上传图片的大致逻辑:1.前端选中图片上传到服务器2.服务器会自动返回图片在服务器的路径,在这...原创 2018-11-12 19:08:49 · 12814 阅读 · 0 评论 -
数组对象排序
今天来写个简单的数组排序,先把比较冗余的代码写出来,然后再把简洁的代码写出来。其实我们在排序时是根据字段里的某些数值来排序(可能我说的不准确,但先就这么理解),所以需要先把那些具有对比性的内容获取出来,然后再进行对比。这里的例子我用一个表格来做说明,具体的思路可以分为几个步骤:获取–赋值–排序–添加–调用1. 获取表格里的tbody,方便往里面添加排好序的tr2. 获取行trs,此时tr...原创 2018-11-28 16:49:12 · 758 阅读 · 0 评论 -
同为异步的promise和setTimeout的执行顺序
promise和setTimeout都是异步执行的,但是执行顺序谁先谁后呢?先看两段简单的代码,比较一下同步和异步://promise和同步比较new Promise(function (resolve, reject) { resolve(1);}).then(console.log);console.log(2);// 2// 1//定时器和同步比较setTimeou...原创 2018-12-10 12:01:22 · 5153 阅读 · 1 评论 -
vue父子组件通信(单向、反向)
1.父组件向子组件传递信息(单向、一对一)【通过props】创建父组件和子组件,不多说;在父组件里引入子组件,注册子组件,使用子组件<template> <div class="ParentComp"> <h1>{{ msg }}</h1> <ChildComp></ChildComp> //3.使用子...原创 2019-04-15 19:58:56 · 760 阅读 · 0 评论