- 博客(42)
- 收藏
- 关注
原创 TypeScript基础学习
交叉类型(&)和接口继承(extends) 对于同名属性,处理类型冲突的方式不同。相同位置的参数类型要相同或兼容,返回值类型 只关注返回值类型本身。4.TypeScript中的高级类型:class类、类型兼容性。1.原始类型 完全按照js中类型名称来书写的(js已有类型)TypeScript为强类型,可以对类型注解、添加类型约束。2.引用类型 object(包括数组、对象、函数等)元组、字面量类型、枚举、void、any等。联合类型、自定义类型(类型别名)、接口、泛型工具类型都是基于映射类型实现的。
2022-11-03 23:00:18
419
原创 微信小程序
在小程序开发工具中设置,开发完成需要上线,直接点上传按钮,如何就可在微信公众平台提交审核,审核成功就可发布了。WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。四个文件,文件名字一般与文件夹名字相同也可不同,但四个类型文件文件名需要相同。文件,在data中定义数据,data平级既可以写生命周期函数、自定义方法。1.小程序项目的基本目录,下图为项目的根目录下。2.小程序页面中使用函数渲染,可以使用WXS。文件,可配当前页面的导航栏样式等。
2022-11-01 21:46:33
952
原创 Promise
从功能上来说Promise对象用来封装一个异步操作并可以获取成功失败的结果值。返回一个新的promises,只有所有成功才成功,只要有一个失败则都失败。返回一个新的promises,最终结果是第一个promise执行的结果。Promise是JS中进行异步编程的新解决方案,旧方案是使用回调函数。返回一个padding状态的promise对象。Promise是一门新的技术(ES6规范): 初始状态,既不是成功,也不是失败状态。then 返回一个新的promise。包含n个promise的数组,
2022-09-22 20:52:08
6745
1
原创 js基础进阶
存储在内存中代表特定信息的,本质上是0101…特点:可传递,可运算一切皆数据算术运算逻辑运算赋值运行函数内存条通电后产生的可存储数据的空间(临时的)内存产生和死亡:内存条(电路板)==》通电==》产生内存空间==》存储数据==》处理数据==》断电==》内存空间和数据都消失了一块小内存有两个数据:内部存储的数据 、 地址值可变化的量,由变量和变量值组成每个变量都对应的一块内存,变量名用来查找对应的内存,变量值就是内存中保存的数据。
2022-09-22 20:02:27
306
原创 Vue3+TypeScript踩坑
type assertion expressions can only be used in TypeScript files.Vetur(8016)**
2022-09-22 14:46:48
1084
原创 Webpack
Webpack是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。会以一个文件或多个文件作为打包的入口。
2022-09-16 13:29:41
1068
原创 Express基础
基于Node.js平台,快速、开放、极简的web开发框架。Express监听GET、POST请求,处理静态资源Express路由模块、中间件、编写接口、使用mysql以及身份认证
2022-09-14 20:20:43
720
1
原创 Vue中的路由守卫
使用 router.beforeEach`注册一个全局前置守卫,注册一个全局守卫,和 router.beforeEach 类似,区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被调用。来说,this 已经可用了,所以不支持传递回调(next()),因为没有必要了。注意:确保 next 函数在任何给定的导航守卫中都被严格调用一次。
2022-09-13 22:27:06
824
原创 npm与包
npm规定,在项目根目录,必须提供一个叫package.json的包管理配置文件,用来记录与项目有关的一些配置文件。安装包后 npm包管理工具会自动把包名称和包版本号,记录到package.json中。镜像:是一种文件存储形式, 一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本为镜像。Node.js自带了npm管理工具,所以只要安装了Node.js就可以使用npm。解决这个问题可以,切换npm的下包的镜像源。:记录node_modules目录下的每个包的下载信息。:用来存放所有已安装到项目中的包。
2022-09-13 20:07:51
296
原创 Node.js基础
基于Chrome的V8引擎的JavaScript 运行环境模块化: 解决一个复杂问题,自顶向下逐层把系统划分为若干模块的过程,模块是可组合,分解和更换的单元。 Node.js遵守了 CommonJS模块规范
2022-09-13 18:04:30
341
原创 Vue中的路由使用
1.下载vue-router2.在src目录下创建router文件并在router下index.js文件3.在man.js中通过 router 配置参数注入路由3.在App.vue根组件中完成以上步骤就可以通过在 router/index.js 中配置的路由访问页面了。
2022-09-12 23:14:49
412
原创 Vue双向绑定原理
我们希望 页面变化数据变化 数据变化页面变化需要实现 永远根据数据的变化去渲染页面 在页面改变数据也能收到通知去修改数据1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者2.实现一个订阅者Watcher,每个Watcher都绑定一个更新函数,Watcher可以收到属性的变化通知并执行相应的函数,从而更新视图3.实现一个消息订阅器 Dep ,主要收集订阅者,当 Observe监听到发生变化,就通知Dep 再去通知Watcher去触发更新。
2022-09-11 18:06:52
223
原创 React基础
该函数会在setState函数调用完成并且组件开始重渲染的时候被调用,我们可以用该函数来监听渲染是否完成。正常情况下,表单元素input是可用任意输入内容,可用理解为input自己维护它的状态(value)2.将state中的状态与表单元素的value绑定在一起,进而通过state中的状态来控制表单元素。利用回调函数,父组件提供回调,子组件调用,将传递的数据作为回调函数的参数。状态:是用来描述事物在 某一时刻的形态 的 数据,一般称为state。能够定义state的组件,类组件就是有状态的组件。
2022-09-10 19:22:46
379
原创 WebSocket
Web Socket是与服务器的双全工、Web Socket使用了自定义协议。自定义协议的好处:客户端和服务端可以发送非常小的数据,不会对HTTP造成任何负担,使用更小的数据包让Web Socket非常适合带宽和延迟问题比较严重的移动应用自定义协议缺点:定协议的事件比 JavaScript API要长我们需要服务器主动发送信息到客户端的需求,我们可以轮询的方式或Web Socket实现。
2022-09-05 23:06:36
618
原创 JavaScript中的防抖和节流
防抖2.调整浏览器窗口大小时,resize次数过于频繁,造成计算过多,此时需要一次到位,就需要防抖。3.input实时搜索并发送请求展示下拉列表,每隔一秒发送一次请求(也可做防抖)1.登录、发短信等按钮避免用户点击太快,以至于发送多次请求,需要防抖。高频事件触发 但 ** n秒内 函数只执行一次 **1.scroll事件,每隔一秒计算一次位置信息等。2.浏览器播放事件,每隔一秒计算一次进度信息等。如果n秒内高频事件再次触发,则重新计算事件。比如:1s内发生一次,一分钟发生一次。所以节流会稀释函数的执行频率。
2022-09-04 23:57:31
1214
原创 JavaScript执行机制
一旦执行栈为空,Event Loop 就会从 Task 队列中拿出需要执行的代码并放入执行栈中执行,所以本质上来说 JS 中的异步还是同步行为。宏任务包括 script , **setTimeout ,setInterval **,setImmediate ,I/O ,UI rendering。不同的任务源会被分配到不同的 Task 队列中,任务源可以分为** 微任务** (microtask) 和 ** 宏任务** (macrotask)。是进程中的更小单位,描述了执行一段指令所需的时间。
2022-09-03 23:42:37
528
原创 axios的封装
在api文件夹中统一管理请求接口,比如关于用户的请求都放在user.js中。在config文件夹中的index.js中,动态改变地址。暂未考虑重复请求、重复发送请求、请求缓存。在http文件夹中的index.js。1.常见错误信息处理。...
2022-08-30 22:37:29
148
原创 Vuex的使用
Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式 + 库。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。当一个组件需要获取多个状态的时候,将这些状态都声明为计算属性会有些重复和冗余。为了解决这个问题,我们可以使。从 store 中的 state 中派生出一些状态,多个组件需要用到此属性。辅助函数帮助我们生成计算属性。3. 在什么情况我们会。...
2022-08-28 00:03:22
184
原创 js原生请求及其封装
XMLHttpRequest 在 AJAX 编程中被大量使用。AJAX 允许只更新一个 HTML 页面的部分 DOM,而无须重新加载整个页面。AJAX 还允许异步工作,这意味着当网页的一部分正试图重新加载时,您的代码可以继续运行(相比之下,同步会阻止代码继续运行,直到这部分的网页完成重新加载)。AJAX(Asynchronous JavaScript And XML )是一种使用 XMLHttpRequest 技术构建更复杂,动态的网页的编程实践。
2022-08-25 00:17:19
1469
原创 css布局-定位(position)
定位:将盒子定在某一个位置,所以定位也是在摆盒子,按照定位的方式移动盒子。定位 = 定位模式 + 变偏移(通过top、bottom、left 、right设置)定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置。一、静态定位(static)HTML 元素默认情况下的定位方式为 static(静态)静态定位的元素不受 top、bottom、left 和 right属性的影响 始终根据页面的正常流进行定位示例1:// html 部分代码 <div class
2022-03-08 10:54:26
823
原创 css布局-浮动(float)
一、float 属性值,有三个:float: left; // 靠左浮动float: right; // 靠右浮动float: none; // 不使用浮动float的原理:脱离标准文档流,进行左右浮动进行float流,后面的元素向上移动,覆盖块级元素,内联元素不会覆盖,见缝插入浮动使用后要马上清除二、设置浮动后会造成:父元素高度塌陷影响浮动元素后面的元素(后面的元素上浮)自身宽高,变成内容的宽高浮动元素不遮盖内容三、解决父元素塌陷问题:使用clear属性清除浮动
2022-03-04 16:32:22
691
原创 css布局-文档流(Normal Flow)、BFC
一、常规流布局/文档流布局(Normal Flow)(相对于盒子模型讲的)将窗体自上而下分成一行一行,块级元素从上至下、 行内元素在每行中按从左至右的依次排放元素。二、脱离文档流定义:元素脱离常规流之后,将不再在常规流中占据空间,而是处于浮动状态(可以理解为漂浮在常规流的上方)。脱离文档流的元素的定位基于正常的文档流,当一个元素脱离文档流后,依然在常规流中的其他元素将忽略该元素并填补其原先的空间。脱离文档流(Normal Flow)的方式a.浮动(float).border1 div
2022-03-04 15:14:58
478
原创 display:none 和visiablility:hidden
一、共同点都能把网页上某个元素隐藏起来二、区别display:none 不占位,隐藏后该位置的元素不存在visiablility:hidden 占位,隐藏后该位置的元素依旧存在,只是视觉上隐藏
2022-03-03 11:35:51
106
原创 v-show 和 v-if
一、共同点v-show 和 v-if 都是做条件视觉上隐藏跟显示用的,都不占位二、区别v-if 是动态的向 DOM 树内添加或者删除 DOM 元素;(创建和销毁元素)v-show 是通过设置 DOM 元素的 display 样式属性控制;(显示隐藏,变动的只是css样式)v-if 可以和v-else 配合使用...
2022-03-03 11:27:13
133
原创 css盒子模型
一、W3C标准盒模型 (content-box)使用:box-sizing: content-box盒子范围包含:margin padding border content设置的width 、height 是 conent的width、height二、IE盒模型/怪异盒模型 (border-box)使用:box-sizing: border-box盒子范围包含:margin padding border content设置的width 、height 是 包含 content、bor
2022-03-02 13:01:01
108
原创 理解JavaScript原型链
一、什么是原型链每一个构造函数都有一个原型对象(prototype),原型有一个属性(constructor)指回构造函数,而构造函数所创建的实例有一个内部指针(proto)指向原型,如果原型是另一个类型的实例,原型就有一个内部指针指(proto)向另一个原型,另一个原型有一个指针指向另一个构造函数,这样就形成了原型链。在ECMAscript中将原型链作为实现继承的主要方法正常的原型链都会终止于ObjectObject 原型的原型是null二、__proto__与prototype的区别pro
2021-03-17 21:52:31
156
原创 node项目部署到服务器
在服务端安装node,把本地项目拷贝到服务器 下载相应模块,启动就能开始使用了1.下载和安装nodewget https://nodejs.org/dist/v12.18.1/node-v12.18.1-linux-x64.tar.xz // 下载tar xf node-v12.18.1-linux-x64.tar.xz // 解压cd node-v12.18.1-linux-x64
2020-08-17 15:30:51
1240
原创 node项目结构和配置文件介绍
一、目录结构介绍下图是按照***[node项目搭建及部署]***文章中步骤创建项目的目录(https://blog.youkuaiyun.com/qq_38367703/article/details/107911301)1.bin目录下的www文件为启动文件2.public目录下为公用文件部分也是静态文件CSS、JS、IMG、字体、入口文件等文件存放位置3.routes目录下js文件中写的路由的跳转方法4.views下放的视图:jade文件或者ejs文件5.app.js中是入口文件...
2020-08-17 14:41:22
832
原创 node项目搭建及部署
npm install express -g,等待,安装好如下所示:npm install express-generator -g,等待,安装好如下所示:express myservercd myservernpm installnpm run start浏览器:http://localhost:3000/ejs的使用:在项目中下载ejs在app.js中引用ejs页面中的跳转—ejs中,页面跳转实际是后台路由控制,需要定义跳转的接口,以及跳转的方法node请求其他后台的数据:在no
2020-08-17 14:05:29
1518
原创 百度地图未授权使用地图API
报错码:Uncaught TypeError: Cannot read property ‘_rd’ of null在调用百度地图api时,一直报错,如下图:找了很久的错误才发现是 Referer白名单 配置错误了,之前自己是直接写的电脑ip后面改成*就没有问题了1.在百度开放平台 ——>常见问题:检查自己的操作是否有误http://lbsyun.baidu.com/index.php?title=jspopularGL/qa2.在百度开放平台——>控制台——>应用管理—
2020-05-17 09:26:24
2887
原创 微信小程序——自定义导航栏(简单版)
一、为什么要自定义导航栏 在微信小程序中,导航栏标题是居中的,如果我们想居左怎么办呢? 想在标题添加图标怎么添加呢?在开发文档我们是找不到相关属性的供我们修改的, 此时就需要自定义导航栏,才能达到我们想要的样式。一、自定义导航栏方法1.在app.json文件中添加"navigationStyle":"custom" //custom 模式可自定义导航栏,只保留右上角胶囊状的按钮....
2020-04-14 16:44:58
3767
原创 回流(reflow) 与 重绘(repaint)
重绘(repaint)节点的样式改变且不影响布局的,比如color,visibility等,称为重绘。回流 (refolw)回流是当渲染树中的一部分或全部因为元素的规模尺寸、布局、隐藏等改变时,浏览器重新渲染 部分DOM或全部DOM的过程。回流也被称为重排(即重新排版整个页面)。总结:重绘不一定回流,回流一定重绘。...
2020-03-18 23:37:47
153
原创 css之link与@import
一、作用:都是加载css外部样式二、区别:1.类别不同:@import属于css2.1 兼容性不好(导入式)link属于XHTML标签完全兼容(链接式)。2.加载顺序不同:@import页面加载后再加载样式(因而可能会产生闪烁)link引用的CSS会同时被加载。3.样式控制不同:@import不支持在JavaScript中使用即js操作dom时用法:<link r...
2020-03-17 23:55:53
206
原创 uni-app问题——请注意无 AppID 关联下,调用 wx.login 是受限的, API 的返回是工具的模拟返回
解决方法:微信开发者工具中project.config.json文件里的appid改为自己的appid微信 AppID 的位置:登录微信公众平台—>开发—>开发设置参考:https://blog.youkuaiyun.com/weixin_42028778/article/details/89449022...
2020-03-16 23:37:19
11597
2
原创 ES6中的let和const
一、let与var的区别1.let不存在变量的提升,存在暂时性死区。var定义存在变量提升:console.log(i)var i=1;//输出结果为 undefined在js中有预解析,此例中i变量提升了,具体代码解析顺序。如下:var c;console.log(i) //所以最后结果为 undefinedi=1使用let定义:console.log(i)let i=...
2020-03-06 00:11:44
236
原创 js中数组排序方法总结
升序:1.sort();a.如果直接调用sort()方法,则是按照字符编码的顺序进行排序 var arr = [110, 210, 11, 2]; console.log(arr.sort());b.按照数值的大小对数字进行排序,就必须使用一个排序函数:写法一(升序):var arr = [110, 210, 11, 2];arr.sort(function(a,b)...
2020-02-20 22:54:30
148
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人