微前端: 初认识
一次接触微前端,还请多多指教, 目的在于学习微前端架构,理解主要原理和核心思想
主要架构
micro-main||- micro-child-vue||- micro-child-react||- micro-child-angular(持续)||- micro-child-common
主应用 micro-main(端口号:8086)目前采用的是以vue-cli3搭建出来的项目为底座,后面还需要尝试以react项目为基座,接入微前端-qiankun,看看官网基本上就能跑起来,主要是分这两部
qiankun
主应用创建承载容器容器规定了微应用的显示区域,微应用将在该容器内渲染并显示,改造App.vue,扩展vue-router
1234567891011121314151617181920212223<template> <div id="app"> <section class="main"> <div class='main-left'> <h1> this is M ...
算法基础:js两数相加
两数相加概况十进制两数相加二进制两数相加链表式两数相加
解题思路
如果写过大数相加(字符串相加),你可能会这么写
12345678910111213141516var addBinary = function(a, b) { let maxLen = Math.max(a.length,b.length) a = a.padStart(maxLen, '0') b = b.padStart(maxLen, '0') let flag = 0 let res = '' let i = maxLen - 1 while(i >= 0) { flag = Number(a[i]) + Number(b[i]) + flag res = flag % 10 + res; flag = Math.floor(flag/10) i-- } res = flag == 1 ? '1' + res : res return res}
那如果 ...
Ts-高级特性:infer
infer ts这一高级语法需要多多练习,勤加编程
ReturnType/Parameters/InstanceType/ConstructorParameters123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990/** * infer涉及的内置高级类型有4个 * ReturnType * ParameterType * InstanceType * ConstructorParameters */interface Member { name: string; age: number;}export const changeName = <K extends keyof Member>(obj: Member, name: K): Member[K] => ...
基础(2): TS 高级特性
当行动变得无利可图时,收集信息;当信息变得无利可图时,睡觉; ——《黑暗的左手》
接口智能提示12345678910111213interface Seal { name: string}interface API { '/user': {name: string, age: number}, '/seal': { seal: Seal[] }}const api = <URL extends keyof API>(url: URL): Promise<API[URL]> => { return fetch(url).then(res => res.json())}api('/user').then(res => res.seal) // 类型“{ name: string; age: number; }”上不存在属性“seal”
高级特性的实际场景应用泛型使用123456789101112131415t ...
随笔: 我在sn这三年
你要堕落,神仙也救不了你你要成长,绝境也能逢生
今天离职了,时间定格在20210603,早晚的一天,只是看你是怎么对待。202105之后,感觉自己特抑郁,快得抑郁症了,生活没有意义,未来没有期待,可能是大环境导致的,老丁离职后,感觉更加明显,再三权衡利弊之后,综合各方面建议,选择去上海闯一闯,再不闯荡真的就没时间了
总体感受在SN这三年,基本上分为三个时间段,前半年,中间两年,最后一年。最苦的应该是中间2年,苦到什么地步呢,每次生产发布完之后第二天,基本上不敢睡觉,也睡不着,生怕出问题,因为平台牵扯到的用户很多,有些还是大领导,一旦出问题,要立马响应,立马做出对策,所以在这种环境下,我大概坚持了2年,现在回首,那段时间很痛苦,基本上都是轮训,每个月发一次生产版本,每个月都要通宵熬夜,对身体伤害很大,对后来者我是不建议这么干的,身体要紧,该紧的紧,该松的松,这样身体才能处于一种相对平衡的状态,一直绷着神经,早晚会出问题的。
业务和技术可视化搭建平台
生活和朋友在SN有很多小伙伴,都是不错值得深交的,感谢各位给予的关怀,以后常联系。
未来规划中间最苦的两年忙于业务不能自拔,现在回首有点虚度 ...
react基础: hook学习
简洁Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性。Hook 是什么? Hook 是一个特殊的函数,它可以让你 钩入 React 的特性。例如,useState 是允许你在 React 函数组件中添加 state 的 Hook。稍后我们将学习其他 Hook。
什么时候我会用 Hook? 如果你在编写函数组件并意识到需要向其添加一些 state,以前的做法是必须将其它转化为 class。现在你可以在现有的函数组件中使用 Hook。
123456789101112131415161718import React, {useState, useEffect} from 'react'export default function Example() { const [count, setcount] = useState(0); useEffect(() => { document.title = `You click ${count ...
react入门: 基础概念学习笔记
标签类型JSX语法中,标签类型有2种,DOM类型的标签和React组件类型的标签。DOM类型的标签首字母必须小写,React组件类型的标签首字母必须大写,React正式通过首字母的大小写判断渲染的是一个DOM类型的标签还是React类型的标签
12345678910// Domconst element = <h1> hello </h1>// react组件类型的标签const element = <HelloWorld/>// 俩者可互相嵌套const element = ( <div> <HelloWorld /> </div>)
组件跟元素React元素就是一个普通的js对象,这个对象通过DOM节点或React组件描述界面是什么样的,jsx语法就是用来创建React元素的
12// react元素const element = <h1>Hello, world</h1>;
React组件是个class或函数,接受一些属性作为输入,返回一个React元素,React组件是由若 ...
面试积累: 0524
最近俩天有点惨,面试难度上来了,自己需要缓一缓,还是得坚持
babel原理
微宏任务,生成器函数属于哪一种队列
webpack chunk分割
各种图片的区别和压缩
如何取消一个promise
装饰器,设计一个装饰器
作用域和闭包
手写正则表达式
get post区别
手写题1找出数组中出现次数最多的数字,如[1,2,1,2,3],打印出1和2,出现的次数是2;[1,2,5,5,5],打印5,出现的次数是3
React和electron学起,不要荒废!!
写给前端的跨平台方案、跨端引擎的本质
React Training的React Router完全教程
[译]怎样学习React—从初级到高级路线图
基础-面试当中的编程题-积累
封装一个异步加载图片的方法123456789101112function loadImageUrl(url) { return new Promise((resolve, reject) { let img = new Image() img.onload = function(img) { resolve('加载图片成功') } img.onerror = function() { reject('can not load image') } img.src = url })}
请实现一个mergePromise函数,把传进去的数组按顺序先后执行,并且把返回的数据先后放到数组data中。123456789101112131415161718192021222324252627282930313233343536373839404142var timeout = ms => new Promise((resolve, reject) =&g ...
面试积累: 0519
以下基础题目,需要在好好表述下,就把对方想象成一个不怎么懂前端的小伙伴,你去面对面的跟她聊,语言的组织和表达尤为重要
http缓存
webpack打包编译过程
闭包的理解和实践
异步编程解决方案(Promise/Generator/Async和await)以及各自的优缺点
var/const/let横向对比
H5的新特新都有哪些
vue3.0中v-if和v-for哪个优先级高
http中的长连接和短连接keep-alive
websocket持久化链接
url输入到显示经历了什么
vuex是基于什么模式
发布订阅模式跟观察者模式区别
下面开始手写答案,尽量精简切中要害websocket一种持久化的网络通信协议,属于应用层,基于TCP传输,复用Http握手通道,是一种全双工通信,最大特点就是服务器阔以主动向客户端发现信息,客户端也阔以向服务端主动发送信息,是真正的双向平等对话,属于服务器推送技术的一种。有三个优势
支持双向通信,实时性更强
更好的二进制支持
较少的控制开销,ws客户端和服务端进行数据交换时,协议控制的数据包头部较少
其他特点包括:
建立在 TCP 协议之上,服务 ...