- 博客(34)
- 收藏
- 关注
原创 Async Await 原理,和promise的区别
1. 当调用一个 async 函数时,会返回一个 Promise 对象 (关键)2. async 函数中可能会有 await 表达式,await表达式 会使 async 函数暂停执行,直到表达式中的Promise解析完成后继续执行 async 中 await 后面的代码并返回解决结果。3. 既然返回的是Promise对象,所以在最外层不能直接获取其返回值,那么肯定可以用原来的方式:then() 链来处理这个 Promise 对象
2024-08-16 12:19:16
239
原创 PromiseA+规范
5.1 promise状态变成 fulfilled 后,所有的 onFulfilled 回调都需要按照then的顺序执行, 也就是按照注册顺序执行(所以在实现的时候需要一个数组来存放多个onFulfilled的回调)catch 的回调里, 打印promise的时候, 整个回调还并没有执行完成(所以此时的状态是pending), 只有当整个回调完成了, 才会更改状态 ==> 第一次打印test时。所以待会实现代码的时候, 同学们注意一下resolvePromise函数具体的实现, 结合代码来看会好很多.
2024-08-16 00:32:19
945
原创 一步步实现一个Promise
先执行整体的同步代码, 然后查看任务队列中,按照先进先出的原则: 2. 定义三种状态类型3. 设置初始状态4. 实现 resolve 和 reject 方法5. 是不是发现咱们的promise少了入参, 咱们来加一下入参是一个函数, 函数接收resolve和reject两个参数.注意在初始化promise的时候, 就要执行这个函数, 并且有任何报错都要通过reject抛出去6. 接下来来实现一下关键的then方法1. then接收两个参数, onFulfilled 和 onR
2024-08-15 22:57:16
921
原创 【vue-cli】vue-cli@2源码学习
vue/cli: 3.11.0创建项目vue create 项目名称@vue/cli: 2.x.x 创建项目下载完成后初始化npm i创建项目。inquirer
2024-08-01 18:15:03
366
原创 TypeScript学习篇-类型介绍使用、ts相关面试题
npm install命令输入 > 检查node_modules目录下是否存在指定的依赖 > 如果已经存在则不必重新安装 > 若不存在,继续下面的步骤 > 向 registry(本地电脑的.npmrc文件里有对应的配置地址)查询模块压缩包的网址 > 下载压缩包,存放到根目录里的.npm目录里 > 解压压缩包到当前项目的node_modules目录中。
2024-07-28 15:29:05
513
原创 【uni-app】JS动态修改scss样式变量
而是由于z-paging定位导致会覆盖或高度不适配当前navbar,所以设置88px。2、 当H5嵌入到H5时,类似于使用手机浏览器打开的页面,就不需要固定距离手机自带的头部高度。因此需要根据环境动态修改scss定义的变量。所以需要根据嵌入的环境进行判断并动态控制样式。
2024-06-06 15:47:29
1362
原创 【uni-app】开发问题汇总
APP和小程序不支持调用任何小程序和app的逻辑层都不支持浏览器专用的window、dom等API,如需获取dom进行操作,APP和小程序可以使用uni.createSelectorQuery 获取对应dom信息:获取方式跟jQuery差不多。在手动清空输入框的值时,change事件没有触发,导致form表单绑定的属性没有同步清空,如。• text组件相当于行内标签,在同一行显示(相当于span标签),不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。,需要再添加blur事件进行同步修改。
2024-06-05 16:02:29
1223
1
原创 uni-app学习--基础组件使用、页面生命周期、本地存储、网络请求、条件编译、路由跳转
uni-app提供了丰富的基础组件给开发者,开发者可以像搭建积木一样,组合各种组件拼接成自己的应用 uni-app中的组件,就像html中的div,p,span等标签的作用一样,用于搭建页面的基础结构 https://uniapp.dcloud.net.cn/component•text组件相当于行内标签,在同一行显示(相当于span标签)•除了文本节点以外的其他节点都无法长按选中• 组件内只支持嵌套 ,不支持其它组件或自定义组件,否则会引发在不同平台的渲染差异。但text嵌套text在小程序中布局是有
2024-06-05 11:20:46
1254
原创 【uni-app】申请高德地图key,封装map.js,实现H5、iOS、Android通过getlocation获取地图定位信息
uniapp使用第三方地图:高德实现定位,支持H5,iOS,Android
2024-06-04 16:51:00
1400
1
原创 uni-app学习---项目搭建、配置、设置导航栏
uni-app分编译器和运行时(runtime)。uni-app能实现一套代码、多端运行,是通过这2部分配合完成的。总:编译器将开发者的代码进行编译,编译的输出物由各个终端的runtime进行解析,每个平台(Web、Android App、iOS App、各家小程序)都有各自的runtime。uni-app是一个使用vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、h5以及各种小程序(微信/支付宝/百度/头条/qq/钉钉)等多个平台。
2024-06-04 16:14:20
1286
1
原创 【解决】Mac SourceTree更改密码后 pull、push提交失败
更改账号密码后,需要退出 SourceTree从Finder中进入路径~/Library/Preferences/ ,找到文件com.torusknot.SourceTreeNotMAS.plist,并删除该文件然后打开 SourceTree, 重新 pull、push。会要求输入密码,输入新密码即可。
2023-06-08 14:15:31
1313
原创 react
必须按照顺序调用从根本上来说是因为 useState 这个钩子在设计层面并没有"状态名称"这个动作,也就是每生产一个新的状态,react并不知道这个状态名字叫啥,所以需要通过顺序来索引到对应的状态值。将mountState 和 updateState 放在一起就是:mountState (首次渲染)构建链表并渲染,updateState 依次遍历链表并渲染。hooks 的渲染是通过"依次遍历"来定位每个 hooks 内容。如果前后两次独到的链表在顺序个出现差异,那么渲染的结果自然是不可控的。
2022-09-09 14:55:12
287
原创 解决required ora和chalk错误问题: Error [ERR_REQUIRE_ESM]: require() of ES Module
解决required ora和chalk错误问题: Error [ERR_REQUIRE_ESM]: require() of ES Module今天Common.js 模块规范requireora和chalk插件时发现报错,信息如下:const chalk = require(‘chalk’)^Error [ERR_REQUIRE_ESM]: require() of ES Module思索一番,必然时依赖版本的问题。。。解决:降低ora和chalk版本分别为:(目前使用的版本)“ch
2022-04-25 21:38:24
8668
原创 浏览器和HTTP流程图
(1)Expires该字段是http1.0时的规范,值是一个绝对时间的GMT格式的时间字符串,代表缓存的过期时间(2)Cache-Control:max-age该字段是http1.1的规范强缓存利用的是max-age的值来实现缓存资源的最大生命周期,单位是秒(1)Last-Modified资源最后的更新时间,随着服务器的response返回(2)If-Modified-Since通过比较两个时间来判断资源在两次请求期间是否有过修改,如果没有就命中协商请求。
2022-03-16 14:27:16
1147
1
原创 vue学习篇--created mounted有时候拿不到props值问题
created mounted拿不到props值问题子组件动态获取父组件传来的值时,因为props原理是通过ajax请求回来的。请求的这个过程是需要时间,但是子组件的渲染要快于ajax请求过程,所以此时 created 、 mounted 这样的只会执行一次的生命周期钩子已经执行了,但是 props 还没有流进来(子组件),所以只能拿到默认值。解决方法:需要对props的值进行监听,然后获取新值:props:{ selectData:{ type:Array }
2021-11-18 17:52:02
1811
原创 vue学习篇-11vuex mutations同步 actions异步原因
文章目录vuex以模块使用模块没有设置命名空间的getters访问方式模块没有设置命名空间的mutations访问方式模块没有设置命名空间的actions访问方式:和mutations一样在组件只能可以通过this.$store.state访问到状态,为什么不能在组件中直接修改state?为了保证数据是单向流动的,只能在store中操作数据,而组件只能够使用状态,不能修改,mutations中必须是同步操作,而在actions中可以有异步操作,所有mutations才能操作state,如果ac
2021-11-18 17:48:17
16475
原创 vue-cli3配置sass采坑:Syntax Error: TypeError: this.getOptions is not a function
使用scss,编译时提示报错,信息如下 error in ./src/common/projectTab.vue?vue&type=style&index=0&id=1bea45d7&lang=scss&scoped=true&Syntax Error: TypeError: this.getOptions is not a function各种百度搜索搞了一下午原因是因为sass-loader版本太高了。。。=_=||解决降低sass-l
2021-03-19 14:50:33
887
原创 vue学习篇--组件只能可以通过this.$store.state访问到状态,为什么不能在组件中直接修改state原因
在组件只能可以通过this.$store.state访问到状态,为什么不能在组件中直接修改state?为了保证数据时单向流动的,只能在store中操作数据,而组件只能够使用状态,不能修改,mutations中必须是同步操作,而在actions中可以有异步操作,所有mutations才能操作state,如果actions中能操作state的话,数据会变得难以管理mutations中的数据变化是可以被vue的开发工具vue-devTools观测到。 actions中的数据变化是不可以被v..
2020-11-13 15:45:37
1529
原创 vue学习篇--10使用vuex状态管理
文章目录vuex基本使用---state使用store中的状态的便捷方法使用计算属性使用vuex中的mapState,这个方法与第一种完全等价要将自定义计算属性与状态管理数据的计算属性合并一起,可以使用Object.assign或者...扩展符vuex基本使用---gettervuex基本使用---mutationsvuex基本使用---actionsvuex是一个专门为vue.js应用程序开发的状态管理模式,就是管理全局数据的一种模式,可以实现组件数据共享,集中式管理组件的数据,安装:npm i v
2020-11-13 15:37:19
124
原创 vue学习篇--09 UI组件介绍
文章目录mint-ui => 移动端vant => 移动端element ui => pc端iview => pc端vue 资源中有很多别人写的第三方插件,可以选用合适自己的。进入vue图像界面工具 安装组件命令:vue ui 还是测试版本npm run servenpm run buildv-model 等价于 绑定一个value值,并实现input事件 => :value='' ,@input='事件' <tabs :value='select
2020-11-13 15:30:44
260
转载 vue学习篇-双向绑定原理
文章目录一、设计思路二、数据劫持三、发布与订阅四、总结一、设计思路MVVM框架相对传统的dom操作模式,最大的优点就是数据的双向绑定。它借鉴了桌面应用程序MVC的设计思想,Model与View之间通过ViewMode关联,ViewModel负责将Model数据的变化显示到View上,通过将View的改变反馈到Model上这就是我们常说的双向绑定数据机制。那如何设计MVVM模型模型呢。需要解决两个关键问题:1、如何知道数据更新。2、数据更新后,如何通知变化。下面我们就分别介绍下vue是
2020-11-13 15:23:19
118
原创 vue学习篇--08自定义指令 自定义过滤器 自定义插件 混入的使用
文章目录自定义指令1.全局指令2.局部指令自定义过滤器混入1.混入和实例的执行顺序自定义插件自定义指令1.全局指令1. main.js: 实现拖拽 // 自定义全局指令 // 参数1:指令的名字 // 参数2:指令的实现函数 // Vue.directive('color', (el, binding, vnode, oldvnode)=>{ // console.log('color指令调用了'); // // console.log(
2020-11-13 15:18:04
168
1
原创 vue学习篇--07vue-router插件使用
文章目录vue-router插件使用---路由基础router-link使用嵌套路由--子路由配置动态路由 传值命名路由 name=''编程式导航:使用js切换路由router 重定向 别名router history模式命名视图Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:嵌套的路由/视图表模块化的、基于组件的路由配置路由参数、查询、通配符基于 Vue.js 过渡系统的视图过渡效果细粒度的导航控制带
2020-11-13 15:11:01
272
原创 git常用命令及常见错误:403错误,ssh_dispatch_run_fatal,超时问题
文章目录一、常用命令二、常见报错问题push到远程仓库 403错误push时出现ssh_dispatch_run_fatalmac下 ping github超时问题一、常用命令 + => new repository => repositore name => create repository 拷贝 HTTPS SSH 地址 在本地新建文件夹,然后在此文件夹中 Git Bash Here 命令: 下载项目到本地: git init
2020-11-13 14:59:55
2604
原创 vue学习--06插槽slot,ref属性,过渡动画
文章目录slot 接收到的组件标签,怎么是外部组件与这个内部组件进行传值组件标签嵌套的通信方式:使用空实例对象进行传值slot传值ref:给标签设置ref,访问dom元素,在当前组件时唯一性过渡动画是vue的内置对象----css过渡transition---动画transition----既有过渡也有动画使用anmiate.cssjavascript 钩子函数transition-group 多...
2019-08-02 20:21:08
944
原创 vue学习篇--05组件props属性,动态组件,keep-alive,异步组件,插槽slot
文章目录propsprops可以访问不能设置props需要进行设置有两种方式props 对象形式接收动态组件异步组件插槽slotslot的name属性props组件的属性在js部分以this方式访问,在dom结构当中以 属性名称访问props可以访问不能设置props是组件外部属性,可以访问,不能设置 => vue将这个称为单选数据流因为还存在其他组件接受这个props传来的值,v...
2019-07-31 21:04:49
684
原创 vue学习篇--04单文件组件,vue脚手架工具,父子组件传值,非父子组件传值
文章目录组件单文件组件vue cli3: vue脚手架工具main.js文件:解读main.js:脚手架创建的单文件组件data属性对应的是函数与this指向vscode中vue工具:Vetur,快捷方式快速创建vue文件:scf+enter声明全局组件声明局部组件单文件组件方式进行父子组件通信:非父子组件传值:为什么 组件中 data属性对应的是函数,而实例中的data是对象?组件正常情况下...
2019-07-31 20:49:44
535
原创 vue学习篇--03事件处理 表单处理 生命周期
文章目录事件处理v-on: 绑定事件 简写@事件修饰符:@contextmenu 右击键盘事件:v-model: 表单处理v-model修饰符生命周期:事件处理v-on: 绑定事件 简写@ 1. html: <div>count: {{count}}</div> <button v-on:click="count+=1;"...
2019-07-31 13:20:22
238
原创 vue学习篇--02内置指令 计算属性 侦听属性
文章目录18个指令v-textv-html:v-show:v-if:v-for: 可以遍历数组 对象 数字 字符串v-bind: 解析属性:title src href type alt placeholder class stylev-pre: 不需要表达式,不解析当前dom及其内部结构内所有的vue指令v-cloak: 不需要表达式v-once: 不需要表达式,只解析一次计算属性:计算属性的...
2019-07-30 18:43:58
253
原创 vue学习篇--01vue各种指令及MVVM
文章目录vue指令:MVVM模型组件vue是MVVM js框架,是由国人尤雨溪开发,与react angular对比:中文文档比较完善 代码轻量 上手简单 容易使用vue: vue是一套英语构建用户界面的渐进式框架,与其他大型框架不同的是,vue被设计为可以自底向上逐层应用。vue的核心只关注视图层,不仅易于上手,还便于与第三方库和既有项目整合。另一方面,当与现代化的工具链以及各种支持类库...
2019-07-30 14:52:23
352
原创 docker部署nginx 并实现反向代理 配置多个域名多个端口
文章目录docker部署nginx 并实现反向代理 配置多个域名多个端口1. 安装nginx:2. 以终端的方式打开镜像容器default.conf:nginx.conf:3. 在linux中创建挂载配置文件和文件夹4. 创建容器并挂载文件和文件夹这一步:如果挂载之后容器运行正常却依然不能通过域名访问可尝试以下操作注意:每一次更改配置文件都需要重启容器解决nginx将css文件解析为text/pl...
2019-07-09 17:16:26
7625
原创 mac安装git,node,npm,yarn,vue,react,docker等
文章目录安装git创建ssh key 配置git安装node 配置npm cnpm yarnmac 中npm安装模块去除sudo安装 yarn,express,vue,react,react-native,w微信小程序,angular,dockerAnywhere 随启随用的静态文件服务器安装git终端打开:执行 git没有安装 会弹出 安装软件 点击安装然后再输入git 出现命令 即安装...
2019-07-01 13:52:09
642
原创 redis修改配置文件及开启后台服务器
这个dir 默认是 ./ 当前目录,修改为 /var/lib/redis然后以配置文件方式启动sudo cp /usr/local/redis/redis.conf /etc/redis/sudo redis-server /etc/redis/redis.conf修改配置之后发现不能开启后台服务:解决这个问题,需要cd到redis的安装目录中,我的安装目录是/usr/loacl/redis/之...
2018-03-09 19:36:27
3326
原创 安装redis 以及开启运行命令
第一次发博,保存下首先,下载安装包,redis官方网站:点击打开链接(推荐下载稳定版stable)然后解压:tar -zxvf redis-4.0.8.tar.gz在复制到/usr/local/redis/目录下,要先新建redis文件夹sudo mkdir redissudo cp -r redis-4.0.8/* /usr/local/redis/然后进入的/usr/local/redis/...
2018-03-09 19:10:15
544
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人