自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 初识React,基础(1), 安装react,jsx文件,类组件和函数组件,css样式

react基础

2024-01-19 16:37:12 415

原创 python保姆级教程, 安装

python

2024-01-15 15:23:41 406

原创 element-ui按钮el-button,点击之后恢复之前的颜色

使用el-button 按钮点击之后, 没有恢复到之前的颜色, 还是保持点击之后的颜色

2023-12-10 22:49:15 887

原创 uniapp(uncloud) 使用生态开发接口详情5(云公共模块)

【代码】uniapp(uncloud) 使用生态开发接口详情5(云公共模块)

2023-10-18 11:35:06 870

原创 uniapp(uncloud) 使用生态开发接口详情4(wangeditor 富文本, 云对象, postman 网络请求)

wangeditor 官网: https://www.wangeditor.com/v4/pages/01-%E5%BC%80%E5%A7%8B%E4%BD%BF%E7%94%A8/01-%E5%9F%BA%E6%9C%AC%E4%BD%BF%E7%94%A8.html。4.1 点击demoObj 目录, 右键, 运行本地云对象, 目录下面多一个demoObj.param.js 文件,4.2 保存一下, 点击demoObj 目录, 右键, 运行本地云对象, 终端打印的。在运行ok, 这都是本地运行的,

2023-10-18 09:41:22 759

原创 uniapp(uncloud) 使用生态开发接口详情3(新增产品分类,产品列表,新闻列表)

schema2code 生成页面

2023-10-17 14:21:46 323

原创 uniapp(uncloud) 使用生态开发接口详情2(使用 schema创建数据, schema2code创建页面, iconfont 引入项目)

iconfont 在项目中使用

2023-10-16 17:24:35 391

原创 uniapp(uncloud) 使用生态开发接口详情1(创建项目)

uniapp, unicloud 创建接口

2023-10-16 14:05:08 346

原创 vue3项目,vite+vue3+ts+pinia(10)-elementplus布局

icon, mune

2022-11-20 22:17:22 1391 1

原创 vue3项目,vite+vue3+ts+pinia(9)-初识ElementPlus

vue3+element plus

2022-11-16 23:22:14 317

原创 vue3项目,vite+vue3+ts+pinia(8)-开发和生产模式配置+跨域(代理)

简单封装axios, 跨域

2022-11-08 22:25:09 1622

原创 vue3项目,vite+vue3+ts+pinia(7)-axios网络请求

axios

2022-11-06 19:26:14 1440 2

原创 vue3项目,vite+vue3+ts+pinia(6)-css样式

sass 样式

2022-11-04 20:01:51 305

原创 vue3项目,vite+vue3+ts+pinia(5)-别名@(也可以不用看)

别名

2022-11-02 22:18:38 95

原创 vue3项目,vite+vue3+ts+pinia(4)-共享状态pinia

状态管理

2022-11-02 21:29:15 164

原创 vue3项目,vite+vue3+ts+pinia(3)-路由router

使用setup, router路由

2022-11-01 13:49:20 455

原创 vue3项目,vite+vue3+ts+pinia(2)-规范eslint

安装eslit

2022-10-31 18:50:20 475

原创 vue3项目,vite+vue3+ts+pinia(1)-创建

vite+vue3+ts

2022-10-31 17:49:13 136

原创 获取浏览器地址,把参数转换为对象

获取浏览器地址,把参数转换为对象

2022-06-23 10:36:13 288

原创 div居中的几种方法

使用div 水平垂直居中方法一: 使用 flex 布局 <div class="box"> <div class="dv"> 111</div> </div> <style> *{ margin: 0; padding: 0; } .box{ width: 100vw; height: 100vh; b

2021-08-04 16:02:53 3555

原创 深入浅拷贝和深拷贝原理

浅拷贝: 创建一个新的对象,赋值给新的函数; 如果这个对象是基本数据类型,就是复制一份给了新的函数, 如果是引用类型,就是复制一份内存中的地址,改变一个值肯定会影响另一个对象深拷贝:先看看:浅拷贝方法一: object.assignobjetct.assign 是 ES6 中object 的一个方法,可以用来浅拷贝 // 方法一 object.assign // Object.assign(target, ...source) target:目标, source:目标源.

2021-08-03 20:43:03 394

原创 GridSome 静态网站生成器

GridSome: 一个免费,开源,基于vue.js 技术栈的静态网站生成器官网:https://gridsome.org/

2021-06-19 16:44:47 139

原创 Vuex使用

Vuex 是一个专为 Vue.js 提供的状态管理模式,多个组件要共享状态,使用vuexvuex 有五种属性:分别是State , Getter , Mutation , Action , Module

2021-06-15 16:39:18 69

原创 Diff 算法

Diff是一种算法,类似排序算法;当数据变化之后,如果直接操作DOM,浏览器会重新渲染页面,消耗性能比较大,使用Diff算法,它不直接操作DOM,而用js对象来描述真实DOM,比较js对象是否发生变化,找到变化的位置,最小化的更新变化的位置,提高了性能,它的执行过程是:在比较开始时首先对新老节点数组的开始和结尾节点设置标记索引,遍历比较时会出现四种情况:a.oldStartVnode/newStartVnode比较:旧节点和新节点从第一个开始进行比较b.oldEndV...

2021-05-30 09:25:54 942

原创 snabbom安装和使用

1.创建目录 如: mode2. cnpm init -y3. cnpm install parcel-bundler -D4.

2021-05-28 15:22:45 477

原创 虚拟DOM

1.虚拟DOM : 就是普通的 JS对象来描述DOM对象, 虚拟DOM 比真实DOM 开销要小很多2.为什么使用虚拟DOM: 当数据变化之后,才操作DOM,数据没有发生变化使用上次

2021-05-27 21:09:32 59

原创 vue 响应式原理,vue2.0 和vue3.0 双向绑定原理

数据响应式: 数据模型是JavaScript 的普通对象,当我们修改数据时,视图会进行更新,避免了操作DOM,提高了开发效率双向绑定:数据改变,视图也会跟着变化;视图改变,随之数据也会改变数据驱动:开发过程中需要关注数据本身,不需要关心数据是怎么渲染到视图的直接看案例 vue2.0 双向绑定原理<!-- body --> <div id="app">app</div> <script> let data={ msg

2021-05-25 20:38:53 238 1

原创 回顾Vue-Router相关用法,route和router区别,路由动态传值,跳转方式,hash和history

1.创建项目 vue create vueRouterMode2.选择自己的配置3.安装vue-router :cnpm install vue-router --dev4.在 src 目录新建router文件夹,再新建 index.js5.在index.js 中编辑:import Vue from "vue"import VueRouter from "vue-router"Vue.use(VueRouter)const Index = ()=> import("...

2021-05-25 10:33:32 245 2

原创 回顾vue生命周期,常用指令,及事件修饰符,按键修饰符keyup.enter

1.Vue生命周期有8个分别是:beforeCreate : 创建vuecreated: 实例化vuebeforeMount: 元素挂载dom树之前mounted:元素挂载dom树之后beforeUpdate: 修改数据之前updated:修改数据之后beforeDestroy:销毁之前destroyed:销毁之后2.常用指令,累计13个v-if v-else-if v-else : 这三个很好记,if else,控制元素在DOM树显示不显示v-s...

2021-05-21 17:56:05 293

原创 性能优化:变量局部,缓存数据,减少访问层级,减少判断层级, 防抖节流,字面量与构造式

从性能方面看:变量局部: 使用局部变量 比 全局变量 性能好一点缓存数据: 放回的数据,使用多次,用变量保存,使用变量减少访问层级: 访问对象属性,直接对象.属性, 如:Pro.age减少判断层级: 减少if 语句嵌套if ,使用 return 返回上面的比较好理解,就没有写案例,接下来看防抖防抖: 对于高频操作,我们只希望识别一次点击,可以人为是第一次或者是最后一次案例:<div id="app">点我点我</div> <script..

2021-05-21 10:17:47 136

原创 webpack 零开始, 从0到1

1.新建项目:webpack2.项目初始化:yarninit-y3.安装webpack依赖:yarnaddwebpackwebpack-cli--dev4.在根目录下,新建配置webpack文件:webpack.config.js5.在根目录下,新建src文件夹,在src目录下新建index.html,index.js,index.css6.先尝试一下打包:yarnwebpack,ok继续往下走7....

2021-05-14 15:55:20 175

原创 v8,v8垃圾回收

v8是一款主流的 javaScript 执行引擎,v8采用即时编译,v8内存设限v8垃圾回收v8垃圾回收是采用分代回收思想内存分为新生代,老生代v8内存分为新生代和老生代二个空间,新生代再分二个空间:使用空间(From)和空闲空间(To)新生代对象回收(空间换时间)回收过程采用复制算法+标记整理使用空间(From)和空闲空间(To)活动对象存储于From 空间标记整理后将活动对象拷贝至To老生代对象回收主要采用标记清除,标记整理,增量标记算法...

2021-04-29 11:15:35 50

原创 内存管理,GC,常见GC算法,引用计数,标记清除,标记整理

内存管理:内存:由可读写单元组成,表示一片可操作空间管理:人为的去操作一片空间的申请,使用和释放内存管理:开发者主动申请空间,使用空间,释放空间管理流程 申请-->使用 --> 释放//简单的案例, 申请/使用/释放//申请let obj={}//使用obj.name="yuqi"// 释放obj=nullGC定义和作用GC就是垃圾回收机制GC可以找到内存中的垃圾,并释放和回收空间GC中垃圾:不再次使用GC算法:算法就是工作时查找和回收所遵循的..

2021-04-29 10:49:02 313

原创 typeScript 原始类型,各种类型,接口,类,抽象类,泛型

typeScript 原始类型1. string 字符串2.number 数字3.boolean 布尔值4.void 空值 一般 赋值 undefined5. null空值6.undefined7.symbol作用域问题function(){ const a:number =1 }export {}// Object类型 是指非原始类型,如 数组,对象,函数const foo :object = function(){}const obj :{foo:nu...

2021-04-29 09:23:14 151 2

原创 TypeScript快速上手, 强类型与弱类型

typesrcipt 语言: 是javascript 的超集或者扩展1.强类型与弱类型(类型安全)2.静态类型与 动态类型(类型检查)强类型:强类型不允许随意的隐式类型转换,弱类型:允许随意的隐式类型转换静态类型:声明之后不能被修改动态类型:运行阶段才能够明确变量类型,而是变量的类型随时可以改变javascript 类型系统特征: 弱类型与动态类型初识 typeScript ,如何安装1.初始化项目 cnpm init -y2.添加 typeScript...

2021-04-28 15:34:08 380

原创 es2015,类,静态方法,继承, Set,Map,Symbol,iterator迭代器

es2015 中的类class Pro { constructor(name){ this.name=name } say(){ console.log(`hi,${this.name}`); } // 静态方法 static create(name){ return new Pro(name) }}// const p = new Pro("zom")const p = Pro.create("zom")p.say() //hi,z.

2021-04-27 17:06:22 87

原创 ES2015 字符扩展方法,展开数组... , 普通函数对比箭头函数,Object.assign

startsWith 是查询字符串开始endsWith 是查询字符串结束includes 是查询字符串是否包含// 字符串扩展 startsWith / endsWith /includesconst message = "hi string message ."console.log(message.startsWith('hi')); // trueconsole.log(message.endsWith('.')); // trueconsole.log(mes.

2021-04-27 15:18:55 78

原创 var let const 的区别,解构,

在javaScript 中 分两种作用域 : 全局作用域和局部作用域在ES2015 以前 都是 var 声明的,var 会声明提升在ES2015 发版之后 新增的 let const 这两种let 是块级作用域, 不会提升,必须先声明const 是 常量,赋值之后不能修改地址解构//解构const obj={ name:"张三", age:18}let name="李四"let {name:objName,age} = objconsole.log(nam...

2021-04-27 11:23:46 43

原创 promise 模仿 then,catch,finally,all,resolve 代码

模仿promise 代码Mypromise 类// 三种状态const WAITFOR = "waitFor" //等待const SUCCESS = "success" //成功const FAIL = "fail" //拒绝class MyPromise { constructor(executor) { try { executor(this.success, this.fail) } catch

2021-04-20 18:57:27 168

原创 Async/ Await

ES2017 加入 async 函数,使异步操作更加简洁方便使用很方便, 就在函数前面加 async 关键字 ,来表示它是异步, 一般async 和 await 配合使用 ,await 是在async 内部使用, await 在定义函数前面async 表示异步await 等待异步处理的结果//简单实用asyncfunctionfoo(url){letvalue=awaitajax(url)console.log(value);}con...

2021-04-20 14:48:08 39

空空如也

空空如也

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

TA关注的人

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