自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 React Nativa使用环境搭建

React Nativa使用所依赖的环境有JDK,android studio,SDKJDK1、进入Oracle官网2、当前最新JDK 已经出到14了,我们选择JDK8就可以了3、jdk的环境变量配置 变量名: JAVA_HOME 变量值为: D:\JavaEclipseAS\Java\jdk1.8.0_111 其中变量值是自己安装的jdk的根路径 在Path环境变量里添加: %JAVA_HOME%\binandroid studio1、进入andro

2021-12-22 09:42:16 484

原创 ngnix服务器 配置

下载nginx下载地址http://nginx.org/en/download.html启动nginx控制台(CMD)切换到Nginx目录下,输入start nginx ,然后在浏览器页面输入localhost,出现如下界面则表示安装成功。默认监听80端口号。路径上不能有中文nginx命令(1)start nginx 开启nginx服务(2)nginx.exe -s stop 关闭nginx服务,快速停止nginx,可能并不保存相关信息(3)nginx.exe -s quit 关闭ngi

2021-06-08 08:38:16 158

原创 transition

transition属性一、对transition属性的认识1、transition 属性是一个简写属性,可用于设置四个过渡属性:transition-property 过渡效果的 CSS 属性的名称(height、width、opacity等)。transition-duration 完成过渡效果需要时间。transition-timing-function 规定速度效果的速度曲线。transition-delay 过渡效果何时开始(延迟时间)。注:如果 transition-duratio

2021-06-02 13:56:13 503

原创 keep-alive

keep-alivekeep-alive是Vue的内置组件,当它包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.keep-alive是一个抽象组件:它自身不会渲染成一个DOM元素,也不会出现在父组件链中.在组件切换过程中,把切换出去的组件保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验行.被包含在keep-alive中的组件,会多出两个生命周期函数:activated(组件激活时调用)与 deactivated(组件离开时调用)如果需要缓存整个项目,直接在app.vu

2021-06-01 18:43:51 107

原创 js事件委托

1. 什么是事件委托事件委托:把事情委托给别人,代为处理。事件委托也称为事件代理,在 jQuery 里面称为事件委派。理解:说白了就是,不给子元素注册事件,给父元素注册事件,把处理代码在父元素的事件中执行。js事件中的委托: <ul> <li>知否知否,应该有弹框在手</li> <li>知否知否,应该有弹框在手</li> <li>知否知否,应该有弹框在手</li>

2021-06-01 08:05:26 116

原创 var let const 区别

在ES5中,声明变量只有var和function两种形式。但是因为var声明的变量会有一定的缺点(内层变量可能覆盖外层变量的问题以及用来计数的循环变量泄露为全局变量,下面有介绍),ES6提出了使用let和const声明变量,弥补了ES5中var的缺点。1.是否存在变量提升?var声明的变量存在变量提升(将变量提升到当前作用域的顶部)。即变量可以在声明之前调用,值为undefined。let和const不存在变量提升。即它们所声明的变量一定要在声明后使用,否则报ReferenceError错。2.是否

2021-06-01 07:57:29 50

原创 什么是闭包

闭包:简单的理解就是函数中套了一个函数,内层函数可以访问外层函数中的变量有时候需要用到函数内的局部变量,在正常情况下是不能读取到的,这个时候就需要用到闭包。闭包可以封装对象的私有属性和方法,就是可以简单的理解成闭包就是一个私有作用域,可以定义属性和方法,vue中的data就是一种闭包的形式。闭包作为回调函数,可以实现函数的复用优点:闭包因为长期驻扎在内存中。可以重复使用变量,不会造成变量污染缺点:闭包会使函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,可能

2021-05-30 21:04:23 76

原创 作用域、作用域链、自由变量、变量提升

作用域1.作用域:作用域就是一个变量可以使用的范围,主要分为全局作用域和函数作用域全局作用域就是Js中最外层的作用域函数作用域是js通过函数创建的一个独立作用域,函数可以嵌套,所以作用域也可以嵌套Es6中新增了块级作用域(由大括号包裹,比如:if(){},for(){}等)自由变量和作用域链当前作用域外的变量都是自由变量,一个变量在当前作用域没有定义,但是被使用了,就会向上级作用域,一层一层依次查找,直至找到为止,找到这个变量后就会停止,不会继续查找这个变量,如果全局作用域都没有找到这个变量就

2021-05-27 19:11:28 49

原创 new的过程

在new开始时,创建一个空对象。这个空对象的__proto__属性指向构造函数的prototype属性调用构造函数,并改变this的指向,指向我们新创建的空对象。返回这个空对象。当我们在第四步的时候,可以判断我们的构造函数有没有返回值,当有返回值时,返回构造函数的返回值,当没有返回值时,返回我们创建的空对象。function Foo(name, age) { this.name = name; this.age = age; return { name, age }; // 返回.

2021-05-27 19:08:30 52

原创 this指向问题

在js中this不是固定不变的,它会随着执行环境的改变而改变。要注意的是this取什么值,是在执行时确认的,定义时无法确认。this的调用大概分为五种场景:1.浏览器里,在全局范围内的this 指向window对象;2.在函数中,this永远指向最后调用他的那个对象;3.构造函数中,this指向new出来的那个新的对象;4.Call、apply、bind中的this被强绑定在指定的那个对象上;5.箭头函数中this比较特殊,箭头函数this为父作用域的this,不是调用时的this.要知道前四种

2021-05-27 19:06:07 47

原创 原型、原型链

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

2021-05-27 18:59:24 56

原创 call、apply、bind的区别

1. callcall、apply、bind都是改变this指向的方法fn.call当前实例(函数fn)通过原型链的查找机制,找到function.prototype上的call方法,function call(){[native code]}fn.call()把找到的call方法执行当call方法执行的时候,内部处理了一些事情1.首先把要操作的函数中的this关键字变为call方法第一个传递的实参2.把call方法第二个及之后的实参获取到3.把要操作的函数执行,并且把第二个以

2021-05-27 08:14:07 74

原创 数组常用方法

1.push() 可以添加一个或多个参数到数组的尾部,添加之后原来的数组会发生改变,返回的是添加后的数组的长度2.pop() 从数组尾部删除一个元素,原数组会发生改变,返回数组中被删除的元素3.unshift() 可以添加一个或多个参数到数组的头部,添加后原来的数组会发生改变,返回的是添加后的数组的长度4.shift() 从数组头部删除一个元素,原数组会发生改变,返回数组中被删除的元素5.slice() 从数组中截取,如果不传参,会返回原数组。如果只传入一个参数,会从头部开始删除,直到数组结束,原数

2021-05-25 21:37:13 63

原创 arguments

什么是argument什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是argument,如果你想知道什么是argument,那么我来给你解释解释什么是a

2021-05-25 18:46:18 84

原创 数据类型判断

数据类型数据类型判断大概有四种typeof、instanceof、constructor、Object.prototype.toString.call()Type:基本数据类型中:Number,String,Boolean,undefined 以及引用数据类型中Function ,可以使用typeof检测数据类型,分别返回对应的数据类型小写字符。另:用typeof检测构造函数创建的Number,String,Boolean都返回object基本数据类型中:null 。引用数据类型中的:Array

2021-05-24 16:29:49 66

原创 js数据类型

js数据类型数据类型又分为基本数据类型,引用数据类型;基本数据类型(值类型): Number、String、Boolean、Undefined、Null、Symbol(es6新增独一无二的值);引用数据类型复杂数据类型: Object。包含Object、Array、 function、Date、RegExp。备注: 基本数据类型,又称值类型。堆栈内存引用类型存储把值存储在堆内存中,堆内存是从下往上存储。生成唯一内存地址。然后在栈内存中把地址赋值给变量。栈内存是从上往下存储的。之所以如此划

2021-05-24 16:27:05 60

原创 vue-router

什么是vue-routervue-router是Vue.js官方的路由插件。我们可以访问其官方网站对其进行学习。vue-router路由是什么?路由:当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Home按钮 => home 内容, about按钮 => about 内容,也可以说是一种映射. 所以在页面上有两个部分,一个是点击部分,一个是点击之后,显示内容的部分。路由的2种模式一、history

2021-05-24 00:26:44 75

原创 什么是深拷贝

在学习深拷贝之前,我们要先搞明白什么是深拷贝?在JS中,数据类型分为基本数据类型和引用数据类型两种,对于基本数据类型来说,它的值直接存储在栈内存中,而对于引用类型来说,它在栈内存中仅仅存储了一个引用,而真正的数据存储在堆内存中。1、当我们对数据进行操作的时候,会发生两种情况基本数据类型var a = 3;var b = a;b = 5;console.log(a); // 3console.log(b); // 5可以看到的是对于基本类型来说,我们将一个基本类型的值赋予 a 变量,接着将

2021-05-24 00:09:20 90

原创 VUEX

VUEX的五大核心state存储状态(变量)mutatis:修改状态,并且是同步的,在组件中使用$store.commit(“事件名”,可以发送参数);来调用,这个和我们组件中的自定义事件类似。actions:异步操作,在组件中使用$store.dispath(“事件名”,可以发送参数),来调用actions中定义的异步操作。getters:对数据获取之前的再次编译,可以理解为state的计算属性,我们在组件中使用$store.getters.fun()modules:可以让每一个模块拥

2021-05-23 18:55:59 125

原创 vue的生命周期函数

生命周期函数每个vue文件,都可以看作成一个实例,从初始化到销毁。生命周期大致有8个,分别是:实例创建前/后、组件挂载前/后、视图更新前/后、实例销毁前/后。一、实例创建前/后1、beforeCreate()我们vue实例创建之前执行的函数。这个时候只有一些实例本身的事件和生命周期函数2、created()vue实例创建之后执行的函数。是最早能使用data中数据和methods中方法的钩子函数。我们可以在这个钩子中请求数据。二、实例挂载前/实例挂载后1、beforeMount()指令已经

2021-05-21 00:13:15 208

原创 vue 组件传参

1、父传子在父组件中的子组件标签上绑定一个自定义属性,自定义属性后面挂载要传递的参数。<banner :list="list"></banner>在子组件使用props 来接受props 可以是个对象,也可以是个数组。当是个数组时,接收的数据没有限制当是个对象时,接收的数据可以限制其类型,或设置一个默认的值…我们使用的时候根使用data中的变量一样即可。注意:父传子时,子组件不可改变传递的数据 export default { props: { list

2021-05-20 23:55:33 77

原创 黑马优购小程序项目详解

黑马优购小程序项目详解1.准备工作先把wx.request封装好。然后配置路由。把底部的导航配置出来。就是我们的首页、分类、购物车、还有我的,在全局的app.json中配置。{ "pages":[ "pages/home/home", "pages/search/search", "pages/my/my", "pages/list/list", "pages/index/index", "pages/logs/logs", "pages/g

2021-05-18 09:23:37 2384

原创 微信支付流程

首先我们肯定是判断用户有没登录,一般都是判断本地有没有token。如果没有,让用户取登录。如果有 // 1 判断缓存中有没有token const token = wx.getStorageSync("token"); // 2 判断 if (!token) { wx.navigateTo({ url: '/pages/auth/auth' }); return; } //

2021-05-17 08:34:27 157

原创 小程序 分享 客服 收藏功能

小程序 分享 客服 收藏功能可以参考小程序登录流程,分享

2021-05-16 19:40:48 207

原创 小程序授权登录流程

小程序授权登录流程小程序的授权登录用到了button

2021-05-16 19:22:17 115

原创 微信小程序下拉刷新,上拉加载

微信小程序下拉刷新,上拉加载我们在开发微信小程序的时候经常会遇到页面下拉刷新,上拉加载更多的开发需求,那么今天就来给大家详解一下微信小程序的下拉刷新,上拉加载需求。上拉加载更多上拉加载更多的内在需求就是当用户触发上拉事件时加载更多数据,那吗我们就可以通过http请求来做到这一点。首先在data里面定义好请求接口需要的数据,后面通过改变这个数据来进行不同的请求 QueryParams: { cid: "", pagenum: 1, pagesize: 10 }, //

2021-05-14 12:00:54 238

原创 promise封装微信小程序的request

为什么要封装wx.requesrt因为我们平常项目中基本每页都需要请求数据,而如果我们每次请求输入据都用小程序本身的request就会造成代码量过多,很难找到相应的方法。所以要封装一下,从而减少代码量,这个可以做到请求的接口和页面分离,方便维护和阅读。在我们项目的根目录下新建一个http文件,然后里面新建1个js文件,文件名叫http.js把,然后我们这个http.js主要使用promise封装我们的wx.request();let baseUrl = “https://xxx”; // 这个变量

2021-05-13 21:03:14 336

原创 什么是promise,promise的使用及实现

什么是promise,promise的使用及实现什么是promise是es6新增的一个构造函数 里面放的是一个异步操作promise是异步编程的一种方案,解决了地狱回调的问题,是一种链式调动的方式Promise 简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。promise 是一个对象,从它可以获取异步操作的的最终状态(成功或失败)。Promise是一个构造函数,对外提供统一的 API,自己身上有all、reject、resolve等方法,原型上有then、ca

2021-05-08 08:04:30 446

原创 微信小程序公众号开发者自动编译,热启动,自动保存

微信小程序公众号开发者自动编译,热启动,自动保存1.自动保存选择左上角设置➡编辑器设置➡勾选需要的设置即可2.热启动选择右上角详情➡本地设置➡勾选启动代码自动热重载(建议搭配自动保存使用)...

2021-05-07 19:08:10 4199 6

空空如也

空空如也

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

TA关注的人

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