不少新手都喜欢一我的完成项目,从项目的规划、搭建,到实施、debug、验收,一整套流程都是本身纯手完成,固然,对于提升本身的总体开发能力和自适应能力颇有帮助。ok,不废话,下面开始介绍小白如何快速完成一个微信小程序。php
- 首先喜马拉雅App比较大,这里只完成部分重要功能。。。
本文章使用的是以喜马拉雅电台App防成微信小程序的栗子。css
您能够从这篇文章中得到如下技能点:html
- 选择项目须要的合适工具
- 如何快速分析项目功能并组成列表
- 如何快速完成并搭建一张页面,并为复用提供良好的接口
- 如何应对短期内没法解决的bug
- 如何规划每一天的工做量和调整工做心态
工具是很是重要的,固然,也是很简单的。。。vue
- 编辑器(我使用的是vscode):@Visual Studio Code
- 微信web开发者工具下载: @微信web开发者工具
- 笔记(我使用的有道云): @有道云笔记
- github(每日提交一下): @github
- mark Man(基本的页面样式标注,大公司都有专门的ps设计师,这里将就一下)mark Man
- iconfont(阿里巴巴字体图标库)@iconfont
- weui(微信样式框架/这项目中css纯手写,新手建议纯手写,实在没法写出可采用部分框架中的样式)@WEUI
喜马拉雅APP分类页面原图:java
3.1分类模块:python
细节:
1. 整个页面的滚动条优化:
::-webkit-scrollbar { width: 0;height: 0;color: transparent; }
2. 全部文字都不能贴边
page{ width:100vh;height:100vh;overflow:hidden;background-color:#f8f8f8;padding:0 20rpx;}
3. icon采用统同样式,增长class提供color更改颜色,提升复用、维护、可读性 --(不过我这里使用的是图片,初始想用图标,可是微信引用是在没法引用http,页面因为是静态,因此可使用图片)
.iconfont {width:45rpx;height:45rpx;overflow:hidden;display:inline-block;color:#fff;} .iconfont-enjoy { color:#xxx;} 自定义颜色 .iconfont-knowl { color:#xx;} 自定义颜色 .iconfont-knowl { color:#xx;} 自定义颜色
4. 字体:简书字体,平滑抗锯齿、
font-family: "lucida grande", "lucida sans unicode", lucida, helvetica, "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;
-webkit-font-smoothing: subpixel-antialiase;
5. swiper-item里结构最好细分模版c++
<!--历史记录-->
<view class="history"></view>
<!--列表顶部,三个列表使用js循环-->
<view class="list list-bottom"></view>
<!--细节列表,多个列表,可使用js和easyMock获取,不过通过多天观察,该页面的数据基本是静态,为了防止过分https请求,直接静态写死-->
<view class="entertainment"></view>
<!--底部swiper-->
<swiper>
<swiper-item autoplay="true" interval="4000" duration="400">
...巴拉巴拉
</swiper-item>
</swiper>
复制代码
mark Man设计师git
细节:github
<block wx:for="{{choiceIcon1}}" class="choice-menu__block" wx:for-item="item" wx:key="*this">
<navigator class="menu-warpper__nav" url="{{item.navUrl}}">
<view class="menu-image" style="background-color:{{item.backgroundColor}}">
<image src="{{item.imageUrl}}" class="icon2"></image>
</view>
<text>{{item.title}}</text>
</navigator>
</block>
复制代码
为全部的文字留下足够的空间,若是空间不足:
overflow: hidden;white-space: nowrap;text-overflow: ellipsis;
web
全部的图片都预留位置,而且优化边框和预留小图标,若是须要直接引用class或者增长一个模块,固然,使用vue时能够把它直接封装template模块
<!--html-->
<view class="FineQualityBac">
<image class="FineQuality-icon" src="../images/recommend/皇冠.png"></image>
</view>
<!--css-->
.FineQuality-icon{width: 18rpx; height: 18rpx; position: absolute; left: -35rpx; top:5rpx; transform: rotate(-45deg);}
.FineQualityBac{width: 0; height: 0; border-left:40rpx solid #ff4612; border-bottom:40rpx solid transparent; position: absolute; left: 0; top: 10rpx;}
复制代码
全部的循环都是用block块标签包裹循环,便于测试和维护
每一个模块之间没有直接联系,解耦方便
半像素问题:
<!-- 基本流程:样式放大俩倍,边框一像素,选择缩放点,scale缩放,肯定盒子模型大小 -->
<!-- 通常用于伪元素设置边框分开上下内容 -->
.xxx:after{
content: '';
position: absolute;
width: 200%;
height: 200%;
border: 1px solid #888;
top:1px;
left:-1px;
-webkit-transform-origin: 0 0;-moz-transform-origin: 0 0;-ms-transform-origin: 0 0;-o-transform-origin: 0 0;transform-origin: 0 0;
-webkit-transform: scale(0.5, 0.5);-ms-transform: scale(0.5, 0.5); -o-transform: scale(0.5, 0.5);transform: scale(0.5, 0.5);
-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;
}
复制代码
以数据为中心的微信小程序缺陷:css的用户体验不是很好,看图说明:
原图
小程序
后期优化空间:
图片区域若是未加载成功能够显示背景图,使用js控制每张图片的加载,若是未成功加载则显示一张未显示图片或者icon
更多页面就很少显示了,懒...
最后聊聊js。c++ 看不起java,java看不起python,python看不起js,js看不起php,php是最好的语言....,因此喽,我们去学php吧!!!咳咳,开个玩笑,莫介意。怎么说,js在我看来其实也不难,也许我学的不深吧,但至少我自我感受js不是不好。我是这么认为滴,首先js是一门工具,若是我要实现某个功能,好比对数据的懒加载,首先完成懒加载实现功能函数,而后封装代码防止污染、而后扩展功能增长错误处理解决预处理参数问题、而后提供用户接口、最后屡次测试push提交。若是有时间的话,我可能会尝试完成架构,在用户使用和功能模块之间提供一个甚至多个过分嫁接,这个很耗时间,有兴趣的朋友能够私信我哦,毕竟我也是刚刚接触,一块儿学习吧,最后奉上个人源码,欢迎各位使用。