本文仅供参考,本文写于上个开发者版本时期 一:HelloWorld 准备工作 开发工具安装好后,新建一个项目,记得取消勾选创建quick start项目 从Hello,World!开始 了解下目录结构 小程序=
本文仅供参考,本文写于上个开发者版本时期
一:HelloWorld
准备工作
从Hello,World!开始了解下目录结构小程序 = app程序主体 + 页面pages app程序主体文件结构:
页面page文件结构:
创建app.js通过开发工具的提示,使用App函数,快速生成一个小程序。
创建app.json一个app.json文件的配置项包含:
所以我们的app.json代码如下 { "pages":[ "pages/index/index" ] } 创建index页面为了便于管理,一般页面会放在pages文件夹下,一个页面一个子文件夹,里面包含js文件、wxml文件、wxss文件、json文件(4个文件名必须一致)。
?
index.js用Page函数快速生成页面实例
编译运行
二:json配置项 准备工作?
14-46-45.jpg
改变下导航栏?
在app.json中添加window相关配置项: "window":{ "navigationBarTitleText":"小程序学习笔记", //导航栏标题 "navigationBarTextStyle":"black", //标题颜色,默认black,可选white "navigationBarBackgroundColor":"#eee", //导航栏背景色,默认#000 //下面影响的是下拉刷新的部分,还没研究出怎么实现 "backroundColor":"#555", //窗口背景色,默认#fff "backroundTextStyle":"dark", //下拉字体样式,默认dark,可选light "enablePullDownRefresh": true //是否支持下拉刷新,默认false } 写个tabBar吧?
tabBar最少2个,最多5个tab "tabBar":{ "color":"#999", //字体颜色,必填 "selectedColor":"#56abe4", //选中状态字体颜色,必填 "backroundColor":"#fff", //背景色,必填 "borderStyle":"white", //上边框颜色,非必填,默认black,可选white //list数组,为每一个tab的配置,必填。tab排序与数组排序一致 "list":[ { "pagePath":"pages/index/index", //页面路径 "iconPath":"images/tabBar/article.png", //icon路径 "selectedIconPath":"images/tabBar/articleHL.png", //选中状态icon路径 "text":"笔记" //文字 }, { "pagePath":"pages/my/my", "iconPath":"images/tabBar/my.png", "selectedIconPath":"images/tabBar/myHL.png", "text":"我的" } ] } page的json?
page也是支持json文件的,不过只能配置window相关的,因此无需写window这个键 { "navigationBarTitleText":"我的" } json配置项里还剩下networkTimeOut 和 debug,以后用到再说吧 三:视图容器 准备工作
创建公共样式因为后面都是学习各个组件的使用,页面结构基本保持一致,一个view包裹着标题+组件内容。因此这里创建公共样式,代码如下: .section{ margin: 20px 0; } .section-title{ margin-bottom: 10px; font-weight: bold; } view视图容器的两种排列布局?
行布局row<!--横向排列view--> <view class="section"> <view class="section-title">flex-direction:row</view> /*通过flex-direction:row 样式控制*/ <view class="flex-wrp" style="flex-direction:row;"> <view class="flex-item box-red">1</view> <view class="flex-item box-blue">2</view> <view class="flex-item box-green">3</view> </view> </view> 列布局column<!--竖向排列view--> <view class="section"> <view class="section-title">flex-direction:column</view> /*改变row为column*/ <view class="flex-wrp" style="flex-direction:column;"> <view class="flex-item box-red">1</view> <view class="flex-item box-blue">2</view> <view class="flex-item box-green">3</view> </view> </view> 样式
.flex-item{ width: 100px; height: 100px; color: #fff; } .flex-wrp{ display: flex; /*不要忘记*/ }
支持滚动scroll-view?
竖向滚动注意:为了让代码更加简洁,往后文章里我去掉了标题和外包的view <!--需要给定容器一个固定高度--> <scroll-view scroll-y="true" style="height:200px;"> <view id="red" class="scroll-view-item box-red"></view> <view id="blue" class="scroll-view-item box-blue"></view> <view id="green" class="scroll-view-item box-green"></view> </scroll-view> 样式 .scroll-view-item{ width: 100%; height: 200px; } 横向滚动<!--记得加white-space:nowrap; 规定不换行--> <scroll-view scroll-x="true" style="white-space:nowrap;"> <view id="red-H" class="scroll-view-item-H box-red"></view> <view id="blue-H" class="scroll-view-item-H box-blue"></view> <view id="green-H" class="scroll-view-item-H box-green"></view> </scroll-view> 样式 .scroll-view-item-H{ display: inline-block; /*不要忘记*/ width: 100%; height: 200px; } 其他属性
scroll-top="100" ----> 设置竖向滚动条位置
其他事件属性暂时不展开,请自行查阅官方文档 轮播swiper?
<swiper indicator-dots="true" autoplay="true" current="1" interval="4000" duration="1000" vertical="true" style="height:200px;"> <swiper-item class="box-red"></swiper-item> <swiper-item class="box-blue"></swiper-item> <swiper-item class="box-green"></swiper-item> </swiper> swiper-item宽高固定为swiper的100%,相当于自动填充 属性说明
indicator-dots="true" ----> 是否显示面板指示点(默认值false) 遗留问题
发现默认值是false的属性,如果我们写出来,例如vertical="false",实际仍然按照true执行,结果是轮播竖向显示。其他的属性我也尝试了,包括上面的scroll-y="false", 结果仍然支持竖向滚动,大家可以试一下。
---------已解决----------- 因此vertical="false"我们可以这样实现:
另外也发现,对于这些默认值false的属性,如果需要改成true,直接加上去就可以,例如这样: <!--直接写scroll-y,而不是scroll-y="true"--> <scroll-view scroll-y style="height:200px;"> <view id="red" class="scroll-view-item box-red"></view> <view id="blue" class="scroll-view-item box-blue"></view> <view id="green" class="scroll-view-item box-green"></view> </scroll-view> 至于为什么,暂时还没明白。 总结一下:对于默认值false的属性,如果想要改成true,直接加上去即可,如果不需要,去掉就行 |