自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Get和post的区别

Get和post的区别1、Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post提交的数据在HTTP包的请求包体中,对用户来说都是不可见的,相对安全。2、Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不受限制。3、Get执行效率却比Post方法好。Get是form提交的默认方法。关于Ge和post的选择:1.私密性的信息请求使用post(如注册、登陆)。2.查询信息使用get...

2021-06-22 10:21:26 158

原创 JS事件委托

1. 什么是事件委托事件委托:事件委托也称为事件代理,把事情委托给别人,代为处理。理解:说白了就是,不给子元素注册事件,给父元素注册事件,把处理代码在父元素的事件中执行。2. 事件委托的原理​ 不是每个子节点单独设置事件监听器,而是事件监听器设置在其父节点上,然后利用事件冒泡原理影响设置每个子节点。​ 例如:给 ul 注册点击事件,然后利用事件对象的 target 来找到当前点击的 li,因为点击 li,事件会冒泡到 ul 上, ul 有注册事件,就会触发事件监听器。3. 事件委托的作用我们只

2021-06-22 10:18:20 163 1

原创 虚拟DOM和diff算法

虚拟dom是根据模板生成一个js对象(使用createElement方法),再根据这个js对象生成一个真实的dom,对复杂的文档dom结构,提供一种方便的工具,进行最小化的dom操作虚拟dom就是一个js对象,vue和react会把文档结构虚拟成一个js对象,然后对节点操作的时候,就是对虚拟dom的操作,当某一个节点发生改变时,或者某一个节点绑定的数据发生改变的时候,vue会监测到这个变化,然后拿旧的虚拟dom和新的虚拟dom进行对比,通过diff算法快速定位到改变的节点,把节点的修改转化为dom操作,让

2021-06-21 08:36:10 156

原创 对axios封装(url统一管理、axios请求拦截、响应拦截、函数封装)

首先要安装axios,一般我会在项目的src目录中,新建一个network文件夹,作为我们的网络请求模块,然后在里面新建一个http.js和一个api.js文件和一个request.js。http.js文件用来封装我们的axios,api.js用来统一管理我们的接口url。在request.js中添加请求拦截和响应拦截。在请求拦截中,会给请求头添加token字段,还有loading动画的开启。在响应拦截中,可以做一些loading动画的关闭,还有可以根据后端返回的状态码,做一些检验token是否有效或者过

2021-06-17 09:56:49 296

原创 vue双向数据绑定原理

vue.js是采用数据劫持结合发布者-订阅者模式的方法,通过 Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调来渲染视图。具体步骤:第一步: 需要observer(观察者)对数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter,这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化第二步: compile(模板解析器)解析模板指令,将模板中的变量替换成数据,然后

2021-06-17 09:50:06 84

原创 原型和原型链

prototype每个函数都有一个prototype属性,被称为显示原型_ proto _每个实例对象都会有_ _proto_ _属性,其被称为隐式原型每一个实例对象的隐式原型_ _proto_ _属性指向自身构造函数的显式原型prototype3.constructor每个prototype原型都有一个constructor属性,指向它关联的构造函数。4.原型链获取对象属性时,如果对象本身没有这个属性,那就会去他的原型_ proto 上去找,如果还查不到,就去找原型的原型,一直找到.

2021-06-10 09:35:12 60

原创 git创建新分支

1.如何连接数据到仓库:在进行创建仓库的时候,依次通过git执行以下步骤:git initgit add .git commit -m “first commit”git remote add origin https://gitee.com/daring00/ccc.git(仓库的地址)git push -u origin master2.git如何创建新分支切换到基础分支,如主干git checkout master2)创建并切换到新分支git checkout -b ly(分

2021-06-09 10:06:57 153

原创 重点:webpack打包优化

webpack打包优化Ⅰ、webpack打包作用

2021-06-06 19:54:48 641

原创 vant-ui按需引入

1.安装vant-ui插件#先安装vant-uinpm install vant-ui --save # 再安装按需引入的插件npm i babel-plugin-import -D2.在babel.config.js中添加配置plugins: [ ['import', { libraryName: 'vant', libraryDirectory: 'es', style: true }, 'vant'] ]3.在src下创建一

2021-06-03 21:08:46 64

原创 配置多环境变量

1.配置多环境变量package.json 里的 scripts 配置 serve test build,通过 --mode xxx 来执行不同环境通过 npm run serve 启动本地 , 执行 development通过 npm run test 打包测试 , 执行 testing通过 npm run build 打包正式 , 执行 production"scripts": { "serve": "vue-cli-service serve --open", "test": "

2021-06-02 08:28:58 191

原创 transition 属性

transition 属性是一个简写属性,用于设置四个过渡属性。CSS3的“过渡”(transition)属性通过设定某种元素在某段时间内的变化实现一些简单的动画效果,让某些效果变得更加具有流线性与平滑性。CSS3的“动画”(animation)属性能够实现更复杂的样式变化以及一些交互效果,而不需要使用任何Flash或JavaScript脚本代码。属性:transition-property 规定设置过渡效果的 CSS 属性的名称。transition-duration 规定完成过渡效果需要

2021-06-01 21:21:52 3397 1

原创 vue组件keep-alive

概念keep-alive 是 Vue 的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。和 transition 相似,keep-alive 是一个抽象组件:它自身不会渲染成一个 DOM 元素,也不会出现在父组件链中。作用在组件切换过程中 把切换出去的组件保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性场景用户在某个列表页面选择筛选条件过滤出一份数据列表,由列表页面进入数据详情页面,再返回该列表页面,我们希望:列表页面可以保留用户的筛选(或选中)状态。

2021-06-01 21:10:59 186

原创 什么是闭包?

闭包的定义闭包就是函数嵌套函数,内部函数可以访问外部函数的变量。闭包的用途闭包可以用在许多地方。它的最大用处有两个:一个是前面提到的可以读取函数内部的变量另一个就是让这些变量的值始终保持在内存中。变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。使用闭包的注意点由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,

2021-06-01 18:41:00 275 1

原创 var let const 区别

let和const存在暂时性死区。即只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。

2021-05-30 21:25:15 58

原创 数组的方法

常见的数组方法pushpush() 添加一个或多个参数到数组的尾部,原来数组会改变,返回的是添加后的数组的长度var arr = [1, 2, 3];`在这里插入代码片`// arr[arr.length] = 4;var res = arr.push(4, 5);console.log(arr); // [ 1, 2, 3, 4, 5 ]console.log(res); //5poppop()从数组尾部删除一个元素,原数组会改变,返回的是被删除的元素var arr = [

2021-05-25 21:43:21 296

原创 arguments详解

arguments中的形参、实参以及参数的值传递和引用传值形参:函数定义的参数。实参:函数调用时实际传递参数。参数匹配是从左向右进行匹配的,如果实参个数小于形参,后面的参数对应赋值undefined。实参的个数如果多于形参的个数,可以通过arguments访问。参数的值传递和引用传值↓↓↓引用传递的参数,是传递引用对象的地址。函数内部修改会影响传递参数引用对象值传递的是一个值类型的副本,函数内部不会影响外部传递的参数变量...

2021-05-25 20:49:16 219

原创 判断数据类型的方法

判断数据类型的5种方法1. typeof可以判断数据类型,它返回表示数据类型的字符串(返回结果只能包括number,boolean,string,function,object,undefined); 可以使用typeof判断变量是否存在(如if(typeof a!="undefined"){...}); Typeof 运算符的问题是无论引用的对象是什么类型 它都返回objecttypeof {} // objecttypeof [1,2] // objecttypeof /\s/ /

2021-05-25 09:21:41 852

原创 js数据类型及特点

js数据类型分为两类:1.基本数据类型(又称为简单数据类型或值类型):String Null Number Boolean Undefined2.引用数据类型(又称为复杂数据类型):Object。包含Object、Array、 function、Date、RegExp数据类型的特点1.基本数据类型:基本数据类型都存储在栈里,且基本数据类型都是深拷贝。值类型栈存储: 主要针对(Number、String、Boolean)三种数据。直接存储在栈(stack)中,占据空间小、大小固定,属于被频

2021-05-25 08:33:54 564

原创 Vue中的key有什么作用?

key是Vue.js中的vnode标记的唯一id,通过这个key可以更准确、更快的找到对应的vnode节点。diff算法的过程中,先会进行新旧节点的首尾交叉对比,当无法匹配的时候会用新节点的key与旧节点进行比对,然后超出差异.准确: 如果不加key,那么vue会选择复用节点(Vue的就地更新策略),导致之前节点的状态被保留下来,会产生一系列的bug. 快速: key的唯一性可以被Map数据结构充分利用,相比于遍历查找的时间复杂度O(n),Map的时间复杂度仅仅为O(1)....

2021-05-24 11:44:58 217

原创 Vuex详解

一、概念Vuex是一个专为 Vue.js应用程序开发的 状态管理模式。因为模块间是不共享作用域的,平时用来解决共享参数的方法就是通过组件传参,一旦项目变得很庞大,管理和维护这些值将是相当棘手的事情。这是我们就可以使用Vuex集中式存储管理所有组件的状态。二、整体运作流程三、使用场景如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 store 模式就足够您所需了。但是,如果您需要构建一个中大型单页应用

2021-05-23 20:20:21 258

原创 深拷贝和浅拷贝

一.深拷贝将一个对象从内存中完整的拷贝一份出来,从堆内存中开辟一个新的区域存放新对象,且修改新对象不会影响原对象二.浅拷贝创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值,假如属性是引用类型,则拷贝的是内存地址。因此如果其中一个对象改变了这个地址,就会影响到另一个对象。深拷贝一般来说,在js中我们用JSON.parse(JSON.stringify(obj))来完成深拷贝,但是该方法不能解决属性为函数,undefined,循环引用的的

2021-05-23 19:23:49 60

原创 vue路由传参

vue路由传参的三种方式1.通过query方式传参这种情况下query传递的参数会显示在url后面this.$router.push({ path: '/detail', query: { id: id } })对应的路由配置:{ path: '/detail', name: 'Detail', component: Detail }//子组件获取参数this.$route.qu...

2021-05-21 10:12:01 45

原创 vue生命周期

一、vue的生命周期是什么 vue每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁,这就是一个组件所谓的生命周期。在组件中具体的方法有: beforeCreate created beforeMount mounted beforeUpdate updated beforeDestroy destroyed作者:CalvinXie链接:https://ww...

2021-05-21 08:55:50 65

原创 Vue组件通信(父传子,子传父,兄弟组件通信)

一.父组件传到子组件父组件是通过props属性给子组件通信的数据是单向流动 父—>子 (子组件中修改props数据,是无效的,会有一个红色警告)1 . 父组件parent.vue代码如下: <template> <div class="parent"> <h2>{{ msg }}</h2> <son :fa-msg="msg"></son> <!-- 子组件绑定faMsg变量,...

2021-05-21 08:28:43 258

原创 微信支付

支付流程1.微信支付哪些人 哪些帐号 可以实现微信支付 企业帐号 企业帐号的小程序后台中 必须 给开发者 添加上白名单 一个 appid 可以同时绑定多个开发者 这些开发者就可以公用这个appid 和 它的开发权限2 支付按钮先判断缓存中有没有token const goshop = wx.getStorageSync('token') || [] console.log(goshop); if (goshop == '') { wx.redirectTo({ url: "/pag

2021-05-17 11:50:18 106

原创 小程序的发布流程

发布流程,大概分三个大步骤:上传代码 提交审核 发布版本1.发布之前,配置服务器域名白名单2.上传代码在代码编写完毕后,在顶部的导航条上找到【上传】输入版本号,项目备注,点击上传上传成功后的提示到这里我们开发代码这块就完工了,剩下的就是去微信小程序平台发布了。3、提交审核进入微信小程序的官网:https://mp.weixin.qq.com进入【版本管理】找到开发版本,点击‘提交审核’首次提交审核,会弹出如下提示,点击前往填写..

2021-05-17 11:37:18 199

空空如也

空空如也

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

TA关注的人

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