自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 资源 (2)
  • 收藏
  • 关注

原创 通过a标签实现文件下载(json数据转excel格式文件)

【代码】通过a标签实现文件下载(json数据转excel格式文件)

2023-01-29 17:43:02 384

原创 对象属性值拼接

设置了一个空数组b和一个空对象i,实现当name属性相同时,number值拼接。

2023-01-29 12:52:25 391

原创 关于echarts的一些总结

其实echart并不难,只要对它足够了解,熟悉,知道怎么去配置,xAxias,yAxis,Series,title等等,都是已经封装好了的东西。有什么问题看官方文档就行,也会很详细,那些想实现的功能,官方文档都会写。去做几个练习就会了,echarts真的很容易。一般能绘制的series如下:看type。

2022-09-30 15:52:38 420 1

原创 echarts y轴柱状图

y轴柱状图,所以这里是yAxis的type设置为category,如果是x轴柱状图,则是xAxis的type设置为category。(y轴柱状图,顾名思义,就是从这个轴出发的柱状图,也就是这个柱状图以它为底,因为yAxis在左边,所以图形自然是水平的)(注意,这是两个柱状,也就是series有两个对象,因为stack名称一致,所以这两个柱状才会相连在一起。

2022-09-30 10:34:18 2128

原创 ECharts 柱状图

代码:

2022-09-30 10:18:43 193

原创 2022/09/30 echarts 简单绘图 折线图

(先安装echarts,在main.js中引入并注册进prototype)

2022-09-30 09:45:00 383

原创 (自绘丑图) 简易理解 TCP/IP 三次握手 四次挥手

如题,这是一个面试经常会问的问题,三次握手即TCP建立连接,四次挥手即TCP断开连接。

2022-07-17 21:02:11 432

原创 了解小程序的笔记 2022/7/3

什么是 ()是框架设计的一套标签语言(组件),用来构建小程序页面的结构,其作用类似于网页开发中的 和 的区别标签名称不同属性节点不同提供了动态渲染数据的模板语法数据绑定条件渲染列表渲染小程序中,额外多出了一个 .json 的配置文件,.json 文件主要分为两个:......

2022-07-03 00:27:32 278

原创 2022/6/8-2022/6/12

2022/6/8vue.js :顾名思义,就是js文件,那么引入方式就有通过script标签。即了解了它是js文件就知道它为什么是渐进式了,就是该做做,不做就不做。关于cdn:https://zhuanlan.zhihu.com/p/52362950看了优酷视频的例子(看某个电视剧)我突然发现大学时候去登录教务系统进行选课时,人太多会登不上,应该跟cdn有关系的。链接上有关于cdn的图,可以看出来,有了服务器以后,就可以代理内容源,一个服务器负责一块区域的用户,这样速度就快起来了。直接让内容源负责

2022-06-13 09:41:54 216

原创 通过js实现金字塔(星号金字塔,回文对称数字金字塔)

先看一下实现效果是这样的:每次看到像这种需要实现图形的,第一步其实要找的就是图形的规律。从规律开始!看到决定这副图形需要空格和’'。从上往下,星星的数量是:1,3,5,7,9,11…空格是数量是:9 8 7 6 5 4 3 2 1 0那么星星的规律就是2n-1 , 空格就是每层递减1但要通过js去实现,就需要从数组(即金字塔)的索引和长度的角度去写他们的规律,那么星星就是: 2(索引值+1)-1 ,而空格则是 :高度-索引值。知道规律后,加一个字符串的方法:str.repeat(n)我

2022-06-11 18:26:36 8103 2

原创 2022/5/23-2022/5/30

在json数据中,二级嵌套用的是对象,对象的value值是数组。比如说不同字母对应不同的城市内容。可以是 {‘A’: [‘an’,‘ab’,‘ac’],‘B’:[‘bn’,‘bb’,‘bc’],‘C’…}实现点击不同的字母进入以该字母开头的城市区域:运用兄弟组件通信方式。因为这是个很简单的兄弟组件传值,所以我们的思路是,在City.vue引用city-list和city-alphabet组件的地方,通过City.vue来实现city-alphabet传值1给父,父存值1,再把值发给city-li

2022-06-02 15:51:37 146

原创 2022/5/10-2022/5/21

要知道Vue的单页应用是什么意思,就要知道页面刷新带来的影响,传统的页面刷新会每刷新一次就会访问服务器,但是现在的不会啦。‘isblue’ class样式绑定:<li v-for="item in items" :class="{ 'is-blue': item.includes('blue') }">只有把json文件放在static目录下时,才能在链接访问json文件内容,不然不可以。比如访问:http://localhost:8080/static/mock/city.json页面

2022-05-23 00:19:32 218

原创 最近看书杂记

最近在看技术类相关的书,来复习之前的知识,记一下笔记:技术内容包括text-align,margin:0 auto,浮动,定位,这些知识都跟块元素,行内元素有很大关系。以及在全局方面讲了Vuex的Getter,存储方面讲了LocalStorage存储对象的方式。一.text-align1.text-align作用文字和图片text-align属性是不是就只对文字和图片起作用呢?答案是否定的。一个比较准确的说法是:text-align对文字、inline元素(行内元素)以及inline-block元

2022-05-10 09:39:44 399

原创 2022/4/26-2022/4/27

水平垂直居中:完全脱离文档流,设置absolut定位,位置全为0,加margin:auto,达到自适应水平垂直居中。水平垂直居中的多种方式:https://zhuanlan.zhihu.com/p/263417006在Promise中,resolve(123),就等于调用promise.then(res),比如这个代码:function foo1(){ console.log(2)}new Promise((res,rej)=>{ setTimeout(()=>{

2022-04-28 00:53:56 840

原创 2022/4/24-2022/4/25

2022/4/24关于tcp/ip三次握手,四次握手:自己已经另开一篇博客:https://blog.youkuaiyun.com/weixin_43754182/article/details/124386427另外的,关于HTTP的无状态意思,就是说每个请求都是独立的,也就是说如上A同学,A同学是个失忆的人,它虽然跟以前一模一样,也认识1, 可是当它和B结束连接以后,它就忘记B发给它的东西了,所以这就叫做无状态。(不知道自己这样的理解对不对,到时候再看看)关于cookie:https://www.cnblog

2022-04-26 15:36:57 2012

原创 tcp/ip 三次握手 个人理解

关于tcp/ip三次握手,四次握手:那张熟悉的syn包,ack包的图我就不说了。说一下它的例子吧。比如我们都知道,客户端需要发送请求,服务端会开启监听端口(即listen(3000)之类的),一般我们代码客户端服务端是这样写的,然后就可以拿到数据了。但实际上,这里经过了三次握手。第一次握手只是建立连接,当连接成功后,服务端返回ack包,客户端收到ack包后,确认服务端接受成功数据,这就是第二次握手。**本来两次握手就可以连接了,为什么要等到三次握手才可以建立连接呢?**那是因为,假设在第二阶段确定握手,

2022-04-24 16:43:42 2521

原创 2022/4/22-2022/4/23

2022/4/22关于XHR:在XHR诞生前,网页要获取客户端和服务器的任何状态更新,都需要刷新一次,在XHR诞生后就可以完全通过JS代码异步实现这一过程。1.XMLHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信。2.AJAX,AJAX = Asynchronous JavaScript and XML,翻译为:异步的 JavaScript 和 XML。ajax就是基于浏览器提供的XMLHttpRequest对象来实现的。所以说,有了XHR,JS可以异步请

2022-04-24 11:00:06 487

原创 postman 使用

之前工作用的是swagger,现在浅谈一下postman,一张图就够了(创建collection)

2022-04-22 11:01:17 505

原创 2022/4/21

复习:css盒子水平居中的多种方式:https://www.cnblogs.com/lxlw/p/11771001.html方法一:text-align:center + display设置 (有继承属性)这里关于text-align继承的理解:子级,孙子级盒子是继承了父级盒子的text-align属性,所以子级,孙子级盒子都是以父级盒子的宽度为水平居中的。这样,孙子级盒子也会水平居中(这也是为什么孙子级盒子会出现子级盒子左上方置顶方向,因为它和子级盒子一样,受根盒子的text-align影响。)代

2022-04-22 00:43:30 169

原创 浅谈 stylus-->mixin

想知道stylus和mixin是什么意思,就需要先知道它们存在的原因——为了使css变得更加可维护,简单来说,就是可以在css中用变量定义特定属性值,可以用函数定义对css进行封装。关于变量,创建vribales.styl文件,代码:$bgColor = #00bcd4$darkTextColor = #333$headerHeight = .86rem关于封装,mixin可以使css中一段样式代码封装在函数定义里,同样的,也是在.styl文件进行定义:mixin简单讲就是函数定义。(当然这不

2022-04-21 19:22:53 467

原创 2022/4/20

以前总是或多或少学习过webpack,但不知道它在实际项目中的应用是怎么样的。(原来在build目录里,可以配置一些东西,比如alias,可以通过修改路径别称来达到缩短路径目的。)举例:所谓的webpack配置:就是在build目录里,有webpack.base.conf.js,webpack.dev.conf.js等,这里可以配置一些东西,可以修改。我们要知道webpack里面的文档写的什么内容。比如webpack.base.conf.js中,alias 里可以设置目录别称。轮播图插件:vue-aw

2022-04-21 10:24:05 643

原创 2022/4/18-2022/4/19

今天主要是复习Vue中的知识。webpack在Vue中的运用:引入文件,先自动识别后缀为vue,再识别js,再识别json.比如 import App from ‘./App’ webpack会默认识别后缀为vue,寻找App.vue文件,如果没有,再寻找 App.js,再寻找App.json关于router-view: 对应的就是路由的内容。所谓路由,就是某个网址对应的内容。router-view—《路由》main.js只需要挂载根组件即可,因为其它组件都是在根组件里的,其它组件要么通过路由

2022-04-20 00:46:52 278

原创 2022/4/15

1.关于rem:比如默认的 html font-size=16px,那么想设置 12px 的文字就是:12÷16=0.75(rem).2.关于原型:因为有了函数的prototype,才有了对象的proto,函数的prototype指向了对象,对象即是实例,每个实例内部都有一个指向原型对象的指针。其实,我觉得我看懂了,就是函数通过prototype创造了对象。这句话正好证明了prototype存在的意义。同时,对象也会生成proto,proto就能证明该对象是由该函数创建的。所以,proto指向的也是函

2022-04-15 21:45:42 492

原创 2022/4/12-2022/4/13

安装react-redux: yarn add react-redux其实react-redux分为两个部分,一是provider,而是connect。通过provider,组件可以连接store。通过connect,store里的数据可以连接到组件上,算是复用组件的意思。也就是说是一种store数据映射到组件的方式。映射的意思其实可以跟复制这个意思相反,一旦映射成功,改变store就等于改变组件的state,不用再像之前赋值一样还需要设置订阅模式了。Provider—>store/inde

2022-04-14 10:31:16 953

原创 2022/4/11

6-4 使用Redux-thunk 中间件实现ajax数据请求第一步,安装: yarn add redux-thunk第二步,在store/index.js中引入applyMiddleware:import { createStore, applyMiddleware, compose } from 'redux';applyMiddleware使我们可以使用中间件第三步,引入thunk,在store/index.js中引入:import thunk from 'redux-thunk';

2022-04-12 09:22:21 201

原创 2022/4/8

antd:ReactDom.render(标签,节点)render() { return 标签 }标签复用。学会怎么复用组件,看官方这样写:const data = [ 'Racing car sprays burning fuel into crowd.', 'Japanese princess to wed commoner.', 'Australian walks 100km after outback crash.', 'Man charged over missing w

2022-04-11 08:44:03 753

原创 2022/4/8 Redux

Redux = Reducer+Fluxstore就像一个公用的父组件,在这个父组件里,有属性,有接口。就像一个库。ReactComponents 页面上的组件Store 存储数据的公共区域redux是视图层框架,把所有数据都放在store之中,每个组件都要从store里拿数据,然后每个组件也要去改store里面的数据,举例:把这个流程理解成一个图书馆的流程react compontents:借书的人action creators:“要借什么书”这句话(语句的表达,数据的传递)store:

2022-04-08 08:42:37 531

原创 2022/4/7

defaultProps,propTypes,皆是小写开头。在组件.defaultProps/组件.propTypes的时候。关于render()的渲染,不管什么时候都是因为props,state的数据发生了变化才会渲染,子组件render()的渲染原理也是这个,而不是单纯因为父组件重新渲染。当父组件的render()重新渲染时,子组件的render()也会重新渲染。对于父组件的render()渲染引起子组件渲染,会造成性能损耗,因此需要做性能优化:在子组件利用shouldComponentUpdat

2022-04-08 08:40:20 1774

原创 2022/4/6

安装originCloud原点出现了无法安装问题,用了这个解决:https://www.zhihu.com/question/502443140关于react中子组件接收父组件值:props,对它进行参数类型定义和设置默认值,分别为PropTypes,DefaultProps.通过解构,子组件可以在任何地方拿到props的值。const { content } = this.props;const { deleteItem, index } = this.props;不管函数还是基本数据类型都是

2022-04-07 08:24:31 821

原创 2022/4/2

#setState传入函数注意事项关于prevState,它是setState传入函数时的默认传参参数,表示的是在修改前的state数据。之前写的this.state,统统都可以改成prevState,具体写法如下:this.setState((prevState)=>({ list : [...prevState.list,prevState.inputValue], inputValue:''}))注意点:setState传入函数,参数为prevState,返回数据是对象(

2022-04-06 08:40:14 166

原创 2022/4/2-下载react调试工具 React developer tools Devtools

因为本人并没有翻墙,所以只好在github下载react调试工具。步骤:1.进入 https://github.com/facebook/react-devtools/tree/v3 后下载zip,压缩。2.打开命令行,进入react-devtools-3文件夹,输入命令:npm --registry https://registry.npm.taobao.org install (如果没有安装成功就再输入一次)3.此时看看package.json是否有build命令,如果有,就可以输入命令:npm

2022-04-02 15:20:34 8869 4

原创 2022/4/1

今天看一下base64吧,base64是图片的一种格式,使用情况是:图片小于10kb时,可以选择base64的图片。太大时不建议使用。base64可以减少请求次数,减轻服务器压力,但由于本身无法缓存,格式内容过多,会影响加载网页的速度。关于react.js与vue.js:react.js灵活性高,更适合做复杂性的业务,vueapi多,不利于做复杂性的业务,如果是做简单类的业务,开发会非常快。react:创建react项目依旧是:create-react-app new-project脚手架工具有

2022-04-02 09:00:57 1233

原创 2022/3/31

关于虚拟dom,其实就是为了减少对真实dom的存在而产生的,但是虚拟dom最后还是要变成真正的dom。至于为什么要用虚拟dom,看这两段代码对比就知道了。// 方式一:平均 60ms 80ms for (var i = 0; i < 10000; i++) {let tmp=Number(document.getElementById('test').innerHTML)document.getElementById('test').innerHTML=tmp+1 } console

2022-04-01 08:34:51 1509

原创 2022/3/30

为了准备面试,我开始学习!关于webpack:https://www.webpackjs.com/concepts/这是webpack中文官网。.看了官网了解了一下四个核心概念,入口,出口,loader(解释除javascript以外,test,use),plugin(插件,require以后可以使用)loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)创建组件的方式:Vue.extend,Vue.component,用

2022-03-31 13:51:17 1172

原创 2022/3/29

react中css样式,因为是jsx,所以不能“style=" xxx: xx; xxx:xx;"这样写。要用{}括起来,同时要注明里面style是个对象,还要再加一个{},于是就有两个{}就变成了:< button style={{ background:‘red’ , color:’#fff’ }} >如果是class,要用className,就是这样的:< button className = ’ red-btn’ >为了布局,render不想用div包裹全部,可

2022-03-30 08:35:22 284

原创 2022/3/28

今天在学bootstrap。关于样式布局,grid栅格布局,一行最多可以分为12个。(通过class=“row” 包着 class=“col”,每一个row里面所有的col加起来就是12份)例子:<div class="container"> <div class="row"> <div class="col"> 1 of 3 </div> <div class="col-6"> 2 of

2022-03-29 09:24:20 1001

原创 2022/3/25

关于内置组件,之前学了teleport,keep-alive,现在学suspense,它是用来解决异步请求不同状态不同页面的一种方法,也叫做解决”异步渲染“如果使用suspense,那么在setup()中返回的将是一个promise对象。suspen异步组件:不同状态不同页面。两个插槽template,第一个#default,成功页面,第二个#fallback,失败页面。父组件 <Suspense> <template #default> &lt

2022-03-28 10:07:21 594

原创 2022/3/24

按钮和标题所在页的高度过高,距离后面的元素有些距离不好看,于是我便在父元素设置margin-bottom:-35px,让元素们距离后面的元素更加近。给第一个元素增加margin-bottom负距离可以缩减两个元素之间的上下距离。关于promise,如果在 then 中使用了 return,那么 return 的值会被 Promise.resolve() 包装。链接:https://juejin.cn/post/7022151996241084446好像async,await比较适合有依赖的代码请求关

2022-03-25 09:52:04 557

原创 2022/3/23

高仿某乎专栏教程:http://docs.vikingship.xyz/vue2和vue3的区别:beforeDestroy -> onBeforeUnmountdestroyed -> onUnmountedvue3的特点就是进行compositionapi,可以实现模块化。实现鼠标追踪:前置知识,typescript的内置类型,mouseEvent运用compositionapi,则变量,函数,生命周期,可以被写在一个函数里,最后导出结果。比如,useMousePositio

2022-03-24 13:20:33 881

原创 2022/3/21-2022/3/22

2022/3/21今天在写代码的时候遇到了一个bug,就是当我打开表格弹窗,第一次可以修改数据,重新打开再也修改不了数据,不知道问题出在哪里,于是就在Object.assign后面加上了 this.subform = JSON.parse(JSON.stringify(this.subform));就可以了大概就是: getsubArg().then(response => { //修改以秒为单位的时间值,把ms改成s response.data.

2022-03-23 08:57:30 1276

前端实现本地导入excel,在线解析预览,excel转json数据

技术vue2,element-ui

2022-08-12

旅游 移动端 仿旅游客户端

旅游 移动端 仿旅游客户端

2022-04-19

VUE3 ANT-DESIGN企业考勤管理系统

VUE3 ANT-DESIGN企业考勤管理系统

2022-04-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除