自定义博客皮肤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)
  • 收藏
  • 关注

原创 ui 中修改默认样式(样式穿透)

Vue引用了第三方组件,需要在组件中局部修改第三方组件的样式,而又不想去除 scoped 属性造成组件之间的样式污染。此时只能通过 >>>,穿透 scoped。有些 Sass 之类的预处理器无法正确解析>>>。可以使用/deep/操作符。>>>:用于原生 css 写法/deep/: 用于 Sass、less … 之类的预处理器...

2021-06-11 08:02:15 341 2

原创 web打包上线流程

首先把config.js中的publicpath的路径由‘/’改成‘./’把路径改为静态资源目录。这个是为了防止打包之后通过服务器jin

2021-06-08 08:59:30 367

转载 webpack打包优化

1、路由懒加载在配置我们路由时,我们可以使用路由懒加载,当我们切换到这个路由时,才会加载这个页面。我们可以在路由规则中配置如下:{ path: '/', // 路由 name: 'Home', // 路由名称 component: () => import("@/views/Home.vue") // 使用这种方式来实现路由懒加载 }2、关闭生产环境下的SourceMap映射文件...

2021-06-07 07:57:13 155

原创 vant按需引入

下载vant控制台输入npm i vant -Snpm i vant@next -S

2021-06-07 07:53:23 410

转载 transition

Transition概念Transition 可以设置 CSS 属性的过渡效果,它有以下几个属性。transition-property 用于指定应用过渡属性的名称transition-duration 用于指定这个过渡的持续时间transition-delay 用于指定延迟过渡的时间transition-timing-function 用于指定过渡的类型transition-property指定应用过度属性的名称,默认值为all,表示所有可被动画的属性都表现出过度动画property:

2021-06-02 07:48:26 87

原创 keep-alive

keep-alive是什么keep-alive是vue的内置组件,用于包裹动态组件,当动态组件不活动时,并不会销毁而是保存它。它自身不会渲染成一个do'm

2021-06-01 21:53:00 47

原创 事件委托123132123

事件代理又称事件委托,是javaScript中绑定事件的常用技巧。顾名思义,‘事件代理’就是把原本需要绑定的事件委托给父元素,让父元素负责事件监听。事件代理的原理是DOM元素的事件冒泡。比如有一组...

2021-06-01 08:45:38 101

转载 闭包闭包闭包

闭包的作用:变量的私有化,不让它污染全局作用域。使局部变量拥有全局生命周期// 函数作为返回值function create() { const a = 100 return function () { console.log(a) }}const fn = create()const a = 200fn() // 100// 函数作为参数被传递function print(fn) { const a = 200 fn()}

2021-06-01 08:26:03 66

转载 作用域作用域链

全局作用域:最外层函数定义的变量拥有全局作用域,即对任何内部函数来说,都是可以访问的:<script> var outerVar = "outer"; function fn(){ console.log(outerVar); } fn();//result:outer </script>局部作用域:和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函...

2021-06-01 08:10:59 44

原创 作用域作用域链变量提升

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

2021-05-28 07:52:00 35

原创 new的过程

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

2021-05-28 07:50:50 113

转载 修改this指向

this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象第一种: new关键字改变this指向//构造函数版thisfunction Fn(){ this.user = "追梦子";}var a = new Fn();console.log(a.user); //追梦子用变量a创建了一个Fn的实例(相当于复制了一份Fn到对象a里面),此时仅仅只是创建,并没有执行,而调用这个函数Fn的是对象a,那么th

2021-05-27 08:14:50 53

转载 原型和原型链

一、原型①所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象②所有函数都有一个prototype(原型)属性,属性值是一个普通的对象③所有引用类型的__proto__属性指向它构造函数的prototypevar a = [1,2,3];a.__proto__ === Array.prototype; // true二、原型链当访问一个对象的某个属性时,会先在这个对象本身属性上查找,如果没有找到,则会去它的__proto__隐式原型上查找,即它的构造函数的pr

2021-05-27 08:07:54 35

转载 数组方法

1.改变数组本身的方法push,向数组的尾新增一个元素,返回值是改变后的该数组的length值unshift,向数组的头新增一个元素,返回值是改变后的该数组的length值pop,从数组的最后删除一个元素,返回值是被删除的元素shift,从数组的头部删除一个元素,返回值是被删除的元素splice(index, num, item1, item2, …),index是指定开始处理的索引位置,num指定删除多少项,从第三个元素开始都是新增的元素项。可以实现从指定的索引位置新增、删除、替换元素。返回值

2021-05-26 08:06:52 57

原创 arguments

什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什么是arguments?什

2021-05-26 08:03:37 52

转载 数据类型判断

说到数据类型,我们先说一下JavaScript 中常见的几种数据类型:基本类型:string,number,boolean特殊类型:undefined,null引用类型:Object,Function,Function,Array,RegExp,Date,...很多时候我们都需要通过判断变量的数据类型来进行下一步操作,下面我们介绍常用的4种方法:1、typeoftypeof 返回一个表示数据类型的字符串,返回结果包括:number、boolean、string、object、unde

2021-05-25 07:54:28 80

原创 2021-05-25

js数据类型一、数据类型数据类型分为2种基本数据类型:String Null Number Boolean Undefined引用数据类型:Object。包含Object、Array、 function、Date、RegExp。备注: 基本数据类型,又称值类型。1、基本数据类型基本数据类型都存储在栈里,且基本数据类型都是深拷贝。2、引用数据类型。引用数据类型都存储在堆里,在栈中有一个id指向堆中的数据,注意:当拷贝引用对象时,拷贝的只是栈中的id,并没有形成新的数据,当我们

2021-05-25 07:45:41 35

原创 深拷贝浅拷贝

首先我们需要知道基本数据类型和复杂数据类型基本数据类型又叫简单数据类型number string boolean null underfined symble复杂数据类型又叫引用数据类型object array data function regexp深复制浅复制深复制复制得是真正的值 简单数据类型都是深复制浅复制复制得是地址 复杂数据类型普通的复制都是浅复制let num1 = 10; let num2 = num1; num2 = 20.

2021-05-23 23:43:08 55

原创 vuex

1什么是vuex?vuex是一个专门为vue.js应用程序开发的状态管理模式。它采用集中管理存储管理应用所有组件的状态,并已相应的规则保证状态简单来说,vuex并不是什么难理解的东西,他就是一个公共的状态管理库,他在数据复杂时用得到,比如说多个视图依赖同一个状态比如说一个界面需要判断我是否登录,那么我可以把判断登录的状态存在vuex中,在另一个页面可以直接取用,不用再组件相互传值那样麻烦2vuex的使用首先再文件中创建一个store的文件夹,里面放一个js文件链接vue和vuex

2021-05-23 19:40:52 59

原创 vue-router

1准备工作建立vue.js项目文件夹,通过cmd命令,完成新建文件夹的相关项目配置vue init webpack项目文件名然后根据需要配置相关参数cd进入项目文件名npm i npm run dev2在main.js文件中,进行关于app.vue的基础配置引入vue引入vue-router引入各个路由对象并配置路由路径和nameimport Vue from "vue";import VueRouter from "vue-router";Vue...

2021-05-23 19:15:50 313

原创 vue钩子函数

1、VUE生命周期是VUE实例化或者组件创建到消亡的过程。2、 beforeCreate 创建前的状态,初始化事件和生命周期。3、创建完毕状态Init (初始化) injections (依赖注入) & reactivity (开始响应)。4、beforeMount 挂载前状态, 是否有元素el,是否有模板,是否渲染到了函数内,是否作为模板进行了outerHTML渲染到了页面,向虚拟DOM上挂载的过程,并且还是把我们的‘#app’生成虚拟DOM,生成完毕后并渲染到view层。5、moun..

2021-05-21 08:02:08 59

原创 2021-05-21

关于Vue的组件通信我们需要知道的是什么是组件,什么是组件通信,怎么使用?1.什么是组件?我认为组件是和vuex有一丝相处的地方的一种东西。相似的地方在于:两者都可供多个页面使用不同的地方在于:组件里面可以书写布局,而vuex只能存放数据2.什么是组件通信?组件通信顾名思义,就是组件与组件中的联系,也就是组件通信。因为​组件可以说是一个具有独立功能的整体,当我们要将这些组件拼接在一起时,这些组件互相之间要建立联系,这个在组件中进行的联系我们就称之为组件通信。我们常用的组件通信有

2021-05-21 07:46:16 39

原创 微信小程序的发布

发布基本需要三个步骤1.发布代码2.提交审核3.更新版本首先在微信开发工具中设置服务器白名单把自己需要的服务器地址放在白名单里,这样微信才能识别文件从而获取数据,这样做的话要记得把微信中的不校验合法域名的对勾点了2.点击上传代码上传成功后点击确定3.去小程序界面https://mp.weixin.qq.com点击左侧版本管理在右侧提交之前上传的代码4.填写资料,第一次提交比较繁琐,会提交一些关于程序和个人的资料之后添加开发者,是添加可以修改代码

2021-05-17 09:57:14 221 2

原创 小程序支付流程

小程序调用wx.login() 获取临时登录凭证code,并回传到开发者服务器。 开发者服务器以code换取用户唯一标识openid和会话密钥session_key。 getToken: function () { //调用登录接口 wx.login({ success: function (res) { var code = res.code; wx.request({ url: 商户服务器...

2021-05-13 20:40:37 33

原创 小程序授权登陆流程

授权登录首先要设置一个button标签添加open-type="getUserInfo"属性这样可以利用微信将你的用户信息传入添加点击事件handleGetUserInfo(e){ console.log(e); const {userInfo}=e.detail; wx.setStorageSync("userinfo", userInfo); wx.navigateBack({ delta: 1 }); }..

2021-05-13 20:31:16 60

原创 小程序获取收货地址流程

小程序获取收货地址流程首先绑定点击事件调用小程序中内置的apiwx.chooseAddress获取用户的收货地址把获得的参数保存下来并渲染到页面上getadress(){ var ad = {} wx.chooseAddress({ success (res) { ad.name=res.userName, ad.tel=res.telNumber, ad.add=res.provinceName+res.c.

2021-05-13 20:26:11 70

原创 小程序如何写收藏、分享、客服功能

小程序如何写收藏、分享、客服功能收藏收藏就是把自己想要的数据推进一个新的数组里,并在页面中显示出你已经收藏过了,那么我们需要做什么呢?现在data中定义一个iscollect来判断收藏按钮的状态当我点击这个按钮的时候获取收藏数组中的数据并进行判断也就是判断我点击的这个数据的id和收藏页的id是否一样这里我用的是findindex的方法,找到不一样的地方会返回下标 let isCollect=false; // 1 获取缓存中的商品收藏数组 let collect

2021-05-13 20:07:47 63

原创 小程序下拉刷新,上拉加载更多

小程序下拉刷新,上拉加载更多小程序下拉刷新上拉加载在很多地方都用的到我们都知道在小程序中有两个自带的钩子函数onPullDownRefresh(下拉动作)和onReachBottom(上拉触底事件)那我们下拉刷新上拉加载正好是在这两个事件触发时触发的首先下拉刷新首先要在小程序json文件中开启一个配置项"enablePullDownRefresh":true,这样在顶部下拉时就会触发下拉的事件既然我们要刷新,那么就要重置数组的数据变为刚进入页面时间的数据也就是重新请求一

2021-05-13 19:57:49 74

原创 2021-05-13

为什么要封装wx.request?因为我们请求接口时,有时候会请求一个接口的多个api,如果没有使用封装,那么我们编写代码会变得繁琐,并且也会导致性能问题。封装的话,利于我们编写,并且提高用户体验和便于代码的修改。对于封装的选择为什么使用promise?当我们进行微信小程序的编写时,写到wx.request的时候,我想大家一定不陌生这种写法,和$.ajax的写法有相似之处。我们对于$.ajax的封装,想必大家并不陌生,这也就不难让我们联想到promise了。并且我们的微信小程序是支持...

2021-05-13 19:21:16 36

空空如也

空空如也

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

TA关注的人

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