微信小程序前端开发踩坑(一)
之前由于不了解微信小程序的整个的运行开发机制,走了很多的弯路,脑子灵光的可能不会遇到,这个主题系列的帖子希望可以帮助到像我一样理解能力慢的孩子。
不论是开发微信小程序还是说学习任何一门编程语言,最重要的一点是要夯实基础,不是只是去看看概念,从hello word开始就要好好的去对待每一行代码,软工是工科,工科就要多动手,每一位走的长远的程序员都不会缺少匠心精神。
1.Q:一个appid只能创建一个小程序项目吗?我写毁了怎么办?我把小程序开发者工具自动创建的快速启动模板不小心删掉了怎么办??
A:一个appid是可以用来创建多个本地工程的,如果你在本地创建的工程是一个空的工程(也就是一个空的文件夹)的话,小程序开发者工具将会进行自动识别,在下方会出现默认勾选快速启动模板,或者是云启动模板,当然你也可以选择照着开发文档去撸代码,前者是提高工作效率,后者是巩固自身专业素质。
放几个有用的链接:
微信开放社区:https://developers.weixin.qq.com/community
微信小程序官方开发文档:https://developers.weixin.qq.com/miniprogram/dev/
知乎小程序社区专栏:https://zhuanlan.zhihu.com/wxapp-union
如果说看不懂官方文档(这种情况真的有)当然只是一开始,网上有很多别人理解过后转化成他的理解 并且很形象的文章也很多,简书上很多好的开发者,这里我放一个我很喜欢的CSDN博主的文章:https://blog.csdn.net/aoaoxiexie/article/details/53670236他的教程是最详细的了,我相信你一定可以看得懂,起步完成了,后面的官方文档你一定能看的懂。
做程序员必备的素养是面向谷歌和百度编程,不仅要一开始学会使用搜索引擎快速的找到对我们最有用的信息,对于前端开发者来说,控制台部分也很重要,
Chrome开发者工具中文文档:http://www.css88.com/doc/chrome-devtools/
掘金的前端开发文章很多很精:https://juejin.im/
segmentfault:https://segmentfault.com/(这个社区大佬能力很强且在里面问一些伸手党的问题一定会被隐藏,所以一定要有自己先解决问题,再问其他人的习惯。)
还有就是在公司工作的时候,大家每个人的时间经历都有限,如果你是萌新实习生,想要请教前辈问题可怎么办??
第一点你必须要明确的是,没有人有义务去帮助你,职场不是水浒传,不讲义气,只讲实力。
第二点你要学会怎么问问题,你可能一开始没办法完全表达出来你想问的,那先打个草稿,我想要什么样子的结果,我用什么样的方式去实现了它,结果与预想的哪里不一样,我为了和预想一样我做了什么样的改正,最终没有成功,在这个过程全程要看控制台的部分,小程序和静态页面不同的是,很有可能快速开发模板给你建立了一系列的“现成”的东西,也包括一个全局的样式:app.wxss这个文件你一定要注意,把不需要的样式在开发前就删减掉,以免之后开发过程中出现各种奇怪的诡异页面效果。
与后端沟通的时候,一般是后端为我们前端提供一个https接口,需要我们去请求它并且拿到一个我们想要的数据出来,这个时候后端会告诉你,我需要你前端来给我提供什么样子的数据,我返回给你200OK,以及我返回给你前端你前端需要的数据,这个过程和Ajax是一样的,但是如果你不明白的话,先去上网搜索资源,然后去查找原因,你要用console.log(res.statusCode)来首先看一下请求是否成功,如果成功了接口继续报错,你就要考虑以下你的appid和后端的appid是否一致了。
2.Q:我在util.js里面想写一些适用于全局的函数,但是在其他的页面中去使用util.方法名 却告诉我:Function is not defined 怎么办???
A:这个情况十有八九就是你忘记在moudle.exports这个用来对外暴露接口里忘记进行函数的接口暴露了,你不暴露别人怎么访问的到?? 这也是一个值得注意的地方。
3.如果你的代码结构还不能写的清晰明了,要多加注释,一方面是方便你多年之后的codeReview 就像你看你小时候贼丑的照片一样,更重要的是,你是在一个团队里工作,你需要让别人看懂你的代码,前辈想帮你check的时候,虽然代码写的很恶心,但是有了注释,会降低一些不适感·····
4.写CSS的时候不要死扣用一种方法,不要觉得会了一种方法就哪哪都用,一定要灵活,层级结构要从一开始给你美术图之后就规划正确。以及要多与你的产品经理进行沟通。
5.如果我们的项目需要写一个海报分享功能怎么办?
网上的 几乎教程都是用canvas标签来画,这是正确的路子,但是你如果是新手,数学还不是很好,canvas就会降低工作效率了,这个时候你的解决办法是:用HTML写出一个静态页面给到后端,后端把你的数据进行绑定,也就是把数据变活(每天的海报都不一样的情况),这个时候你就用他给你的图片链接接口去做保存到相册的逻辑,与此同时,你在前端把分享图用css写出来,这个目的是为了提高用户的使用感受,加载的时候会很快。