- 博客(21)
- 收藏
- 关注
原创 macos 配置anaconda使用python
一、 安装anaconda二、 安装后切到新建的环境修改macOS环境变量输入 open -t ~/.bash_profile 打开配置文件在配置文件后面添加以下内容后保存(python38为环境名,改为自己创建的环境)alias python="/opt/anaconda3/envs/python38/bin/python"alias pip="/opt/anaconda3/envs/python38/bin/pip"输入 source ~/.bash_profile 后生效三、
2021-04-09 15:35:57
568
原创 macOS配置MySQL
下载 macOS的MySQL数据库修改macOS环境变量输入 open -t ~/.bash_profile 打开配置文件在配置文件后面添加 :/usr/local/mysql/bin 保存输入 source ~/.bash_profile 后生效输入 echo $PATH 可查看现有环境变量Navicat连本地数据库测试不通过...
2021-03-03 17:06:48
186
原创 红包小程序总结
1. 背景在2020年春节前夕,项目组规划了一个微信小程序。该项目是一个红包抽奖活动,用户通过完成小程序中的任务获取抽奖次数,然后选择自己喜欢款式的红包进行抽奖,然后根据抽奖情况发放奖品。该项目本身并没有太过复杂的功能,但由于之前项目组未从事过小程序的开发,导致项目的开发因政策引起需求变更经历一波三折,好在最后完成并交付了项目,其中遇到的许多问题在此进行复盘总结。2. 功能点该图大致列出了项目包含的几个主要的功能点,以及功能点之间的相关逻辑主流程为:用户进入微信小程序后,获取配置页的奖品数据,关注
2021-02-26 18:03:33
319
原创 JS基础总结(7)——ES6
Generator基本使用generator函数是ES6提供的一种异步编程解决方案,函数会返回一个遍历器对象,可依次遍历generator中的每一个状态。主要有两个特征:function 和函数名之间有一个星号函数体内部使用yield语句定义不同的内部状态函数调用后并不执行,会返回内部状态的指针对象。调用遍历器的 next 方法使得指针指向下一个状态。即 generator 是分段...
2020-07-17 11:02:34
152
原创 解决Failed to decode downloaded font问题
使用@font-face引入字体文件的时候fire-fox下载报错,chrome解析报Failed to decode downloaded font警告,Edge正常解析网上说的好多都是跟风,又或者场景不一样,试了许多方案没有一个是正确的,经过多方尝试最终找到原因并解决。根因是文件有损windows上正常打开,edge正常显示,看起来文件是没有问题。本人通过多方途径下载相同字体的文件,最终找到无损文件替换之后解决问题。...
2020-06-21 01:13:37
5624
3
原创 Vue源码分析(3)—— 编译原理
3.2 数据双向绑定export function observe (value: any, asRootData: ?boolean): Observer | void { if (!isObject(value) || value instanceof VNode) { return } let ob: Observer | void if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer)
2020-06-19 07:54:52
235
原创 Vue源码分析(6)——Vuex
1. Store初始化如未使用Vue.use(Vuex)进行安装Vuex,则进行安装。安装阶段通过mixin全局注入beforeCreate钩子,组件初始化时触发钩子进行Store注入递归遍历配置项,初始化module并构建module树递归遍历module树,安装每个module并对其中的state,getter,mutation,action进行封装并注入到store创建内置vm实例,映射state和getter至vm实例的data和computed属性构建map映射函数并导出,提供便捷AP
2020-06-12 22:42:43
127
原创 Vue源码分析(1)—— 初始化
1. Vue 构建构建工具:rollup构建流程:通过对象定义出所有情况将每种情况的文件路径通过函数映射到真实路径通过对象转换函数将定义的对象转换成rollup所需数据结构通过Node命令控制构建的文件使用Node将文件写入dist2. Vue对象构建定义构造函数,调用_init方法(此时未调用)分模块往构造函数原型上进行挂载(此时挂载_init方法)...
2020-06-12 08:29:54
161
原创 Vue源码分析(2)——组件化
1. 入口函数vue实例调用_init方法最后会调用vm.$mount方法vm.$mount最终调用mountComponent方法,在其中会定义updateComponent方法,用于渲染初始化和页面更新updateComponent方法调用vm._render方法在vm._render中会有vnode = render.call(vm._renderProxy, vm.$createElement),如果用户未定义render方法,则调用vm.$createElementvm.$create
2020-05-28 03:05:43
175
原创 面试题总结(3)—— JS
模块化模块化将复杂的程序拆分为一个个独立的模块,有利于重用和维护参考闭包以及使用场景闭包:可以访问并维护其他函数内部变量的函数使用场景:回调传参,setTimeout传参,ES6模块(类似,不确定实现原理,无法肯定),结果缓存类和继承ES5:属性定义:构造函数方法定义:原型链继承:寄生组合继承function inherit(father, child) { Obje...
2020-05-18 17:28:57
148
原创 Webpack基础配置
1. 引入类1.1 webpack安装npm install --save-dev webpacknpm install --save-dev webpack-clinpm install --save-dev webpack-dev-serverentry: { main: './src/index.ts'},output: { path: path.resolve(__dirname, '../dist'), filename: '[name].[contentH
2020-05-18 17:25:09
390
原创 面试题总结(2)—— CSS
目录CSS盒模型CSS选择器优先级FlexBFC定位外边距合并清除浮动img默认inline却可以设置宽高背景颜色填充calc属性z-index属性重绘和重排元素隐藏的方法和区别link标签和import标签的区别transition和animation的区别block、inline、inline-block的区别js动画和css3动画的差异性三栏布局水平垂...
2020-04-28 12:13:31
205
原创 面试题总结(1)—— HTTP/浏览器
输入url到页面渲染完成之间,发生了哪些事浏览器搜索自身的DNS缓存浏览器搜索操作系统的DNS缓存读取本地的HOST文件浏览器发起DNS的系统调用宽带运营商会查看本地的DNS缓存运营商服务器发起一个迭代的DNS解析请求运营商把DNS解析结果返回给操作系统内核操作系统内核把返回结果返回给浏览器浏览器拿到对应的IP地址后发起TCP三次握手TCP/IP链接建立以后,浏览器...
2020-04-27 09:17:39
250
原创 JS基础总结(8)—— 其他
1. 历史状态管理能够触发浏览器历史状态栈的操作,也是vue-router的实现原理1.1 Hash通过#(锚点)来实现页面内定位,不会触发页面刷新每次改变Hash值会在浏览器状态栈中添加一条记录并触发hashchange事件Hash是浏览器行为,对服务器无效,也不会被包含进HTTP请求1.2 History能够在不加载新页面的情况下改变浏览器URLAPIhistory.back...
2020-04-16 03:00:23
172
原创 JS基础总结(6)—— HTTP请求
1. AjaxAjax: Asynchronous JavaScript + XML能够向服务器请求额外数据而无须卸载页面1.1 XMLHttpRequest原生进行http请求方法如下:const request = new XMLHttpRequest()// 以下是两种状态监听方案// 1. 使用onreadystatechange监听XMLHttpRequest对象的状态r...
2020-04-09 20:51:05
662
原创 JS基础总结(5)—— Bom与Dom
1. Bom1.1 windowBom 的核心对象是 window ,它既表示浏览器的一个实例,用于访问浏览器窗口的一个接口,又是js的全局对象,所有全局作用域定义的方法和变量都会成为其属性。注意点:成为 window 对象属性的方法和变量无法使用 delete 删除访问未定义的变量会报错,而使用 window 间接访问则不会(仅限 var 定义的)1.2 iframe每个 ...
2020-03-15 16:39:56
131
原创 JS基础总结(4)—— 异步
1.由于异步调用无法确定数据返回的时间,因此回调函数调用的顺序无法保证。为了确保函数的执行顺序,就出现了异步嵌套异步的方法,产生了非常丑陋的代码嵌套,又称为:回调地狱2. Promise2.1 含义和使用异步编程的一种解决方案,比传统的解决方案更合理且强大Promise对象有两个特点:具有三种状态 Pending, Fulfilled, Rejected。状态不受外界影响,只受异...
2020-03-10 00:47:01
175
原创 JS基础总结(3)—— 模块
1. ES6 Module 语法1.1 exportexport 导出模块,导出的是对象,因此当值改变后,导出内容会跟着变,一个模块可以导出多个export let val = 0setTimeout(() => { val = 1}, 100)export default 导出指定的默认输出,一个模块只允许有一个。本质是将后面跟着的值赋予default变量再导出,因此...
2020-03-09 00:54:34
129
原创 JS基础总结(1)—— 变量与环境
1. 数据1.1 数据类型基本数据类型: Undefined、Null、Boolean、Number、String、Symbol引用数据类型: Object1.2 数据存储基本数据类型储存在栈内存中,变量中的值即是实际数据的值,变量的赋值即为值的复制。const num1 = 5 // 在栈内存中生成一个值为5的数据赋值给num1const num2 = num1 // 在栈内存中再...
2020-03-08 18:02:32
216
原创 JS基础总结(2)——对象和类
1. JS中的类面向对象对象的语言有一个标志,那就是它们都有类的概念,通过类可以创建任意多个具有相同属性和方法的对象。然而在JS中并没有类的概念,为了满足类的设计模式的普遍需求,JS提供了一些近似类的语法去实现类的功能,语法糖和JS中的“类”也一直在掩盖一个事实(一定程度上也会误导小盆友):JS中的类和其他语言中的类完全不一样。2. JS类的实现方式JS中有很多类的实现模式,但由于存在种种缺...
2020-02-14 23:18:14
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人