- 博客(25)
- 收藏
- 关注
原创 vue生命周期中调用的方法无法获取data中的数据
今天写项目遇见了一个坑,在created函数中调用了三个方法created() { this.getData(); this.getDetail(); this.getCategory(); }如以上写法,getDetail()和getCategory()是通过promise异步请求,将数据写入到data中,我调用getData()方法无法拿到data中的数据,通过写日志一步一步确认错误时,发现getData()方法比获取数据的这两个方法先执行。通过询问大佬发现是JS事件
2020-11-30 20:55:42 3042
原创 微信小程序购物车收货地址实现
首先理一下收获地址按钮的逻辑1.获取用户的收获地址1.绑定点击事件2.调用小程序内置api 获取用户的收获地址,通过wx.chooseAddress2.获取用户所授予获取地址的权限 状态为scope (通过wx.getSetting测试)1.假设用户点击获取地址按钮后允许获取scope值为true 可以直接调用 获取收货地址2.假设用户取消授权scope值为false1)诱导用户自己打开授权设置页面 (通过wx.openSetting打开)2)重新打开权限后,获取收货地址3.假设用户并
2020-11-12 11:47:38 2032
原创 微信小程序下拉刷新、下拉加载下一页操作逻辑
用户上滑页面 滚动条触底 开始加载下一页数据1.输入滚动条触底事件2.判断是否有下一页数据1)获取到总页数总页数 = Math.ceil(总条数/ 页容量)=Math.ceil(total/pagenum)2)获取当前页码3)判断一下 当前的页面是否大于等于 总数表示没有下一页s数据3.没有下一页数据弹出提示4.有数据继续加载1)当前的页码 ++2)重新发送请求3)数据请求回来 进行数组拼接而不是全部替换goodsList:[…this.data.goodsList,…res.g
2020-11-09 14:24:24 782
原创 微信小程序父子组件传值原理,实现小标签的转换
1.设置组件,通过父组件向子组件传值2.子组件在properties中获取数据3.子组件通过遍历将值显示出来,再通自定义事件,获取标签索引e.currentTarget.dataset4.通过绑定点击事件的方式,将获取的索引发送给父组件this.triggerEvent(“父组件中的事件”,{index})5.在父组件中绑定组件中的事件,拿到{}中的值const {index} = e.detail;6.将数据单独声明出来进行遍历,确保数据中的索引与获取到的索引一致let {tabs} =
2020-11-06 17:28:55 214
原创 表单提交的方式及区别
这里简要的说明一下js中表单提交的方式和区别提交的方式分为get、post两种方式区别:1)携带的参数get:将参数以?的形式拼接再浏览器的地址栏上post:将参数放到请求体中去2)安全性post比get更安全如果以get方式请求登录接口时,用户输入的用户名等信息就会被显示在浏览器的地址栏上,可以被其他用户查看3)携带数据的大小get携带数据的大小有限,一般比较小,最多传输1024字节的数据post理论上没有大小的限制...
2020-10-15 10:38:06 3170
原创 对于闭包的认知
闭包是在学习javascript时常见的问题,很多面试中也提到了闭包的相关知识,这里将大致讲一下我对闭包的认知闭包是指有权访问另一个函数作用域内变量的函数,创建闭包的最常见的方式就是在一个函数内创建另一个函数,创建的函数可以 访问到当前函数的局部变量。闭包有两个常用的用途。用途一:是使我们在函数外部能够访问到函数内部的变量。通过使用闭包,我们可以通过在外部调用闭包函数,从而在外部访问到函数内部的变量,可以使用这种方法来创建私有变量。用途二:是使已经运行结束的函数上下文中的变量对象继续留在内存中,因为
2020-10-09 16:32:40 109
原创 vue生命周期概述
vue是一套用于构建用户界面的渐进式框架。现在频繁使用于各个项目中,本次就是介绍一下vue的生命周期。其中包含了8个生命周期钩子,也叫生命周期函数beforeCreate( 创建前 )使用这个钩子,组件的选项对象并没有创建,el和data都还没初始化,所以data、methods和computed等都用不了。一般用来在组件挂在之前渲染一些东西。created ( 创建后 )这时候上面的data、methods、computed都已经创建完成了,数据观测,属性和方法的运算,watch/event事件
2020-10-07 10:18:20 212 1
原创 微信小程序知识点小结
通过学习vue的学习方法来学习微信小程序1.page小程序页面student.jsutils工具app.js 小程序(总体)app.json 全局配置app.wxmlapp.wxss2.page的配置信息Page({data:{},foo(){},bar(){},onload(){},onReady(){},onShow(){},onHide(){},onUnload(){}})3.小程序的数据渲染数据维护到js -
2020-10-06 19:03:16 203
原创 用Generator函数创建一个可迭代的对象
一般可以进行迭代的常见的类型有Array、Set、Map、String等等但是以下内容将展示如何用Generator函数封装一个可迭代的对象let obj = {"0":"one","1":"two","2":"three"}obj[Symbol.iterator] = function* (){ for(let key in obj){ let val = obj[key]; yield [key,val]; }}for(let o of obj)
2020-09-14 15:07:50 188
原创 基于promise异步操作的封装
本次试验通过用自己封装的promise来监听是否访问成功其中访问的方法类似于$.ajax方法function get_promise(url){ return new Promise((resolve,reject)=>{ let xhr = new XMLHttpRequest(); xhr.open("GET",url); xhr.responseType = "json"; xhr
2020-09-10 11:11:08 202
原创 H5api的学习
H5apihtml5的标签和语法js操作1)语义化标签*div块级元素headerfooterasidenavartcile功能元素进度条inputplaceholder 文本框内的文字typenumberdatemonth2)音/视频video属性src 加载资源地址controls 显示控件autoplay 自动播放duration 视频的整体长度currentTime 视频播放的进度volum 视频的
2020-09-09 11:09:15 323
原创 模拟jquery中ajax,get,post方法的封装
var request = { ajax:function(method,url,headers,data,handler){ var xhr = new XMLHttpRequest(); xhr.open(method,url); for(var k in headers){ xhr.setRequestHeader(k,header[k]); } //contentType.startsWi
2020-09-08 09:21:46 216
原创 jquery相关知识整理
1.jquery1)对于es5、DOM、BOM封装本质时函数1.选择器2.属性3.事件4.http请求2)安装本地引入cdn在线引入npm run builddistvue源码3)用法介绍1.$(函数)文档加载完毕之后2.$(选择器)获取到选择器选中的元素,获取到的节点放入到类数组中3.$(元素节点)将一个节点转换成jquery对象4.$(html片段)创建具有结构的html内容createElement(‘div’) $(‘div’)4)基础语法1.
2020-09-07 09:58:12 162
原创 JS事件机制相关知识点整理
事件机制1.事件三要素事件源事件发生的源头,指DOM对象事件处理函数匿名函数,只有在事件发生之后才会执行,由浏览器调用,在调用的时候会产生一个事件对象传递给事件处理函数事件对象记录了事件的详细信息2.事件绑定1.onXxx属性 通用型dom.onclick = function(event){}2.addEventListener(eventType,handler,useCapture)eventType 事件类型handler 事件处理函数
2020-09-06 11:50:25 225 1
原创 对于BOM的相关学习整理
BOM浏览器对象模型,是浏览器提供的用于操作浏览器的SDK1)网页进行前进或者后退window.history.go()window.history.back()window.history.forward()2)超时调用与间歇调用setInterval(function(){//匿名函数每隔1000ms调用一次},1000)setTimeout(function(){//匿名函数在1000ms之后进行调用},1000)setInterval,setTimeout返回值为数字类型表
2020-09-04 14:51:03 197
原创 用js语言对数组算法进行编写
假设有数组[8,2,32,4,1,9],编写算法进行升序排列,算法不做要求,可以使用冒泡/选择/插入…var arr = [8,2,32,4,1,9];第一种:var result = arr.sort();第二种:var result = arr.sort(function(a,b){return a-b;});第三种:var result = arr.sort(function(a,b){if(a-b<0){return -1;}return 1;})第三种(冒泡排序):f
2020-09-03 14:48:10 145
原创 阶段性测试自己的错题
1.http协议理解含义:超文本传输协议,用于从万维网向浏览器端发送超文本数据的协议音视频、图片、文本…组成:请求报文请求行请求地址请求方式请求头contentType:‘application/xx’token请求体参数响应报文响应行状态码及描述200 ok响应头响应体服务端返回的数据2.简述一下从在浏览器打开一个网页到网页加载完毕中间发生了什么事情?越详细越好浏览器输入url地址-> 浏览器根据url封装为请求报文->请求报文发送到服务器端->
2020-09-02 20:27:20 138
原创 对于DOM的相关学习整理
20.DOM (浏览器环境下测试)文档对象模型,浏览器提供api(html元素->js对象)通过api进行dom操作(追加节点,删除节点,动态改变属性)1)体系结构ObjectNodeElement Document Text CommentHTMLElementHTMLDIVElement1.Node节点元素,在html中所有的标签都可以被称为是节点Node是构造函数1)实例化浏览器在加载html的时候已经完成了节点的实例化,只需要document.xxx方法获
2020-08-26 18:36:20 151
原创 正则表达式的学习
正则表达式(RegExp)正则是一门独立学科,Javascript对正则表达式提供了支持。1)实例化1.字面量var pattern = /正则表达式/匹配模式var pattern = /\d{3}/g //全局模式匹配,找到所有数字为三位的数字2.构造函数var pattern = new RegExp(正则表达式,匹配模式);匹配模式i ignoreCase 忽略大小写g global 全局匹配,每次记录下一次开始的位置m
2020-08-24 20:28:21 154
原创 块级元素水平垂直居中方法
css中进行水平垂直居中的方法首先先提一下行内元素水平垂直居中的方法在style中设置属性text-align:centerline-height:和父元素同高其次就是关于块级元素水平垂直居中的几种方法1.给父元素设置相对定位,给子元素设置绝对定位,并且四个方向都设置为0px,加margin:auto2.给父元素和子元素都设置为绝对定位,并且left:子元素width的一半 top:子元素height的一半3.给父元素和子元素都设置为绝对定位,并且left:calc(50%-子元素widt
2020-08-19 19:22:18 268
原创 Array的API学习
静态方法 构造函数方法Array.isArray()Array.of() //创建数组,弥补new Array()的缺点非静态方法 实例方法1.遍历相关方法Array.prototype.forEach()作用:对指定的数组进行遍历,每遍历一个元素调用一次回调函数参数:回调函数、function(item,index,arr){},item 遍历出来的元素index 索引arr 当前数组返回值:undefinedAr
2020-08-17 14:50:23 230
原创 模拟Array中mypush()方法的使用
Array.prototype.myoush()方法作用:入栈,将参数追加到数组末尾下面运用函数进行模拟mypush()的执行过程Array.prototype.mypush = function(){ for(var i=0;i<arguments.length;i++){ this[this.length] = arguments[i]; } return this.length; } var a
2020-08-16 21:44:29 396
原创 css中外边距合并问题
在html/css中给子元素设置位置属性有时会发生外边距不合并的问题,以下是对于外边距不合并的几种解决方法1.给父元素添加overflow:hidden属性2.给父元素加上border3.给父元素设置为IE盒子,然后加padding-top4.给父元素或者子元素加上float5.给父元素或者子元素加上absolute6.给父元素或者子元素加上fixed (一般不推荐)7.给父元素或者子元素加上inline-block...
2020-08-16 18:37:19 134
原创 模拟Array中forEach函数的用法
数组中可以不用for循环来遍历数组元素,那就是通过forEach()函数来进行遍历,这里用自己构造出来的函数模拟forEach函数的运行过程。Array.prototype.myforEach = function(handler){ for(i=0;i<this.length;i++){ handler(i,this[i]); }}var arr = ["gaygay","daidai","pangpang"];arr.myfo
2020-08-13 20:00:43 226
原创 解决重启需source的问题
linux安装node后每次重启都需进行source问题:在/etc/profile中写入环境变量source生效后,node可以正常运行,但是再次重启或者切换用户后node需要重新source才可以运行解决方法:在/etc/profile配置环境变量export NODE_HOME=/opt/node版本号export PATH= $PATH: $NODE_HOME/bin后编辑vi ~/.bashrc 再最后面增加if [ -f /etc/profile ]; then. /etc/pro
2020-08-13 10:45:11 725 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人