- 博客(32)
- 资源 (8)
- 收藏
- 关注
原创 开发微信小程序总结
关于这次的小程序项目,有以下一些内容需要总结一下。开发方式开发文档调试方式开发方式由于微信小程序实际上是运行在微信App内部的,因此和通常我们所说的前端开发有点不同。(其实我并不想将小程序归于web前端这个领域中来,因为小程序被微信限制的太死了)IDE是微信自身提供的微信开发工具,我们可以利用这个IDE快速搭建项目。当然为了部署到线上,在此之前需要在微信开发后配注册小程序拿到相应的A...
2019-03-22 10:43:15 219
原创 微信小程序 - textarea无法绑定input事件
Bug <textarea bind:input="onExtraInput" value="{{value}}" placeholder="{{disabled?placeHolder[1]:placeHolder[0]}}" disabled="{{disabled}}"></textarea>上面的代码乍一看没什么问题,但是实际上onExtraInput并不会随...
2019-03-18 19:27:49 2584
原创 微信小程序 -自定义组件中的“薛定谔”数组
前言如下图所示:不直接打印它的时候它存在值,一打印就为空。小程序的生命周期按照小程序的开发文档来说,在attached生命周期中进行数据的初始化。这里我的需求就是当组件加载的时候对传入的数组进行分类处理。结果发现在attached生命周期中传进去的参数竟然是如同薛定谔一般的幽灵数组。BUG的来源在对properties添加Observer监听之后,发现在attached生命周期时...
2019-03-18 15:16:35 1109
原创 微信小程序 - 七牛云CDN图片加载空白
由于七牛云的系统有防盗链域名白名单限制,所以微信请求时域名是微信服务器那边的。和上一篇跨域的文章一样,将七牛云增加微信服务器的白名单参考链接: https://www.macrr.com/wechat-applet-image-404.html...
2019-03-17 16:07:49 1837
原创 微信小程序 - 跨域问题
微信小程序的复杂请求是通过微信后台服务器请求的,也就是说请求来源的origin域是微信后台服务器,为了解决跨域问题得自己的后台允许微信服务器的域:servicewechat...
2019-03-17 13:51:08 10826 2
原创 JS数组解构是浅复制
项目中有一个场景是需要复制一个数组,为了不影响原数组应该选择深复制。所以concat,slice都不能用,只能用JSON.parse(JSON.stringify(globalData.shop.cart))来转换了。其实也想到了数组的解构,用下面的代码测试了一下,发现是浅复制…var a = [{id: 1},{id: 2}];var b = [...a];b[0].id = -1;c...
2019-03-16 17:14:30 1002
原创 微信小程序 - 判断page是否可见
为了提升小程序的性能,回调函数需要在页面不可见时不setData,而在OnShow中处理。我们可以利用页面栈来判断:app.$watch('shop', (val)=>{ const pages = getCurrentPages(); if(this === pages[pages.length-1]){ this.setData({ sh...
2019-03-16 16:22:52 1586
原创 微信小程序 - TypeError: undefined is not a function at t.all (native)
使用Promise.all的时候报错:发现是Promise.all调用方式出错了。错误代码:Promise.all(getSwiperList(storeId), getNotices(storeId), getIndexProducts(storeId))正确的应该是传入一个数组:Promise.all([getSwiperList(storeId), getNotices(sto...
2019-03-16 15:18:05 1128
原创 微信小程序 - getStorageSync:fail parameter error: parameter should be String instead of Object;
getStorageSync的用法应该是这样的,之前误用成异步的了 let old = wx.getStorageSync('store');
2019-03-16 14:58:31 13419
原创 微信小程序 - 利用ES6简化wx.request
前言之前封装了一次wx.request方法,发现很容易陷入回调地狱,用Promise修改一下。前文链接利用Promiseconst fetch = (options) => { return new Promise((resolve, reject) => { let defaultOptions = { url: baseUrl, metho...
2019-03-15 21:22:16 194
原创 微信小程序 - 实现验证码组件
前言之前用vue写过一篇验证码组件的文章,现在用微信小程序实现。布局和vue中的布局相同,换成小程序的写法: <view class="ys-verification"> <view class="input-wrapper" wx:for="{{amount}}" wx:key="index"> <input type=&quo
2019-03-15 21:17:59 2256
原创 微信小程序 - 设置input只能输入数字
需求view如下:<view class="ys-number-input {{error?'error':''}}"> <input type="number" auto-focus focus='{{focus}}' value="{{value}}" title="" bindinput="handleInput" bindblur="va
2019-03-15 21:11:50 36647 1
原创 LeetCode - 258. 各位相加 - JavaScript
注意等于10的时候应该返回1—/** * @param {number} num * @return {number} */var addDigits = function(num) { let total = num.toString().split('').reduce((t,c)=>{ return t + parseInt(c) },0);...
2019-03-13 20:08:59 124
原创 LeetCode - 217. 存在重复元素 -JavaScript
/** * @param {number[]} nums * @return {boolean} */var containsDuplicate = function(nums) { let t = {}; let ret = false; for(let i = 0; i< nums.length; i++){ if(t[nums[i].to...
2019-03-13 20:01:03 85
原创 整数1出现的次数 - JavaScript解法
当成字符串处理 , O(n^2)function NumberOf1Between1AndN_Solution(n){ let sum = 0; for (let i = 1; i<=n ;i++){ sum+= getNumsFromStr(i.toString(), '1') } console.log(sum); return ...
2019-03-11 16:01:07 273
原创 微信小程序 - Error: Expect END descriptor with depth 1 but get another
在上一篇博客中,我在项目中使用了对页面data的监听函数,在wx:if结构中引用到了被监听的这个字段,从而引发了Error: Expect END descriptor with depth 1 but get another这个bug。论坛中官方解释是这样的:检查了一下我的代码,发现在监听函数中(app.js中定义的observe方法):set(value) { cons...
2019-03-11 15:45:45 2693 1
原创 微信小程序 - 监听page中的data
在app.js中 observe(obj, key, fun, caller){ var val = obj[key]; Object.defineProperty(obj, key, { configurable: true, enumerable: true, set(value) { console.log('set '...
2019-03-11 15:40:22 4437
原创 微信小程序 - 监听globalData
参考文章: https://www.cnblogs.com/BestMePeng/p/xcx_watch_globaldata.html前言由于项目上线在即,发现了项目设计上的缺陷。项目的所有公用数据都存放在globalData中,想据此实现一个类似Vuex的状态管理程序。由于小程序的页面渲染需要手动触发,因此可以考虑实现一个对globalData的监听程序。代码在app.js中watc...
2019-03-10 19:24:30 4541 5
原创 微信小程序 - bindtap不起作用
检查了半天程序,硬是没有Bug信息。吐槽小程序!日常吐槽!不想写小程序了!Solution在绑定tap事件的标签上检查是不是bind写错了!我无意间写成了bingtap,结果没有错误信息!继续吐槽!...
2019-03-10 17:07:40 9915 7
原创 微信小程序 - position:fixed不起作用
在微信小程序开发中,我设置了position:fixed一直不起作用。原本以为不支持这个特性,查看文档之后发现是可行的。于是观察自己的代码(从H5修改来的),发现设置了bottom:50px,这是由于tabbar在h5中需要自己手动实现。但是在小程序中不需要这样的实现,所以bottom:0px就能够将组件定位于tabbar上面。...
2019-03-10 14:15:19 1161
原创 微信小程序 - (intermediate value)(intermediate value) is not a function;
Bug如图Solution出现这个错误的原因是这段代码中: const options = { bubbles: true, composed: true } //此处少了分号 (this.properties.showRightText || this.properties.showRightIcon) &&...
2019-03-09 15:25:53 1217
原创 微信小程序 - 父组件修改子组件的属性值不重新渲染
Bug在开发小程序的时候,发现父组件捕获子组件传递来的值,修改后通过setData但是界面不渲染。Solution原因是我的子组件写的有问题:子组件中定义了properties和data,通过attached生命周期在组件挂载的时候同步data和properties中的值。父组件修改的是properties中的值,而attached只执行一次,故此不会重新渲染。不使用data就好了,直接...
2019-03-09 10:44:10 16815
原创 LeetCode - 加一
为什么内存消耗这么大啊!solution/** * @param {number[]} digits * @return {number[]} */var plusOne = function(digits) { let ret = []; digits[digits.length-1] += 1; for(let i = digits.length-1; i...
2019-03-08 22:20:39 70
原创 LeetCode - 寻找最长公共前缀
???什么鬼,0.72… 暴力破解这么惨吗Solution/** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function(strs) { if(strs.length === 0) return ""; if(strs.length === 1) return s...
2019-03-08 22:00:26 93
原创 微信小程序 - sdk uncaught third Error Cannot read property 'name' of undefined
在自定义组件的properties中错误的使用了Vue的语法 properties: { price: [Number, String], },修改 properties: { price: Number, },
2019-03-08 21:14:51 991
原创 微信小程序 - wx:for绑定事件传递参数
前言想类似Vue一样在小程序中绑定事件时直接传入参数,发现在小程序中行不通。最后通过dataset曲线救国。代码<view class="ys-classification"> <a class="ys-card" href="javascript:;" bindtap="onItemClicked" data-index='{{index}}' wx:for='{{s...
2019-03-08 16:50:56 7275
原创 微信小程序 - 路由拦截
参考文章:https://www.jianshu.com/p/8f33a38a671a代码/** * 页面路由鉴权相关 */const isExpired = (auth) => { if (auth.token === '') return false return auth.expireTime - new Date().getTime() > 0}con...
2019-03-08 11:13:09 6428 1
原创 微信小程序:封装wx.request方法
//baseUrl -> prefixconst fetch = (options, callback, fail) => { let defaultOptions = { url: baseUrl, method: 'GET', data: null, success(data) { if (data.statusCode === 2...
2019-03-07 19:39:04 184
原创 微信小程序 - tabBar 文字颜色不支持rgb
Bug在调试阶段,使用rgb定义tabBar选中时的文字颜色,开发工具预览效果没错,不过在真机上调试发现出现问题。原本应该是黄色的文字,在真机上却变成了绿色。Solution将RGB 转换成hex 16进制...
2019-03-07 15:56:20 2701
原创 LeetCode 删除链表的倒数第N个节点 - JS
思路是用双指针对应起来,但是我这代码存在一些问题:/** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } *//** * @param {ListNode} head * @param {numbe...
2019-03-05 16:26:52 240 1
原创 Lenovo 笔记本无声音 - 解决方法
换了一个外接显示屏之后发现没有声音了…百度也是束手无策。猜测应该是系统换了音频输入…Solution点击右下角声音图标,点击上箭头选择扬声器没声音是因为换了显示屏之后默认变成下面那个音频了…...
2019-03-05 15:22:35 1747
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人