严选是豆果美食的另外一个小程序,在本项目中将严选忽略,只作首页、分类和收藏。html
建立一个空项目,不选择快速模板。项目名称为 cookbook。git
页面中的搜索、列表、菜谱详情封装成组件,以便于更好地复用和维护。github
组件文档 json
咱们为何须要组件化开发?小程序
首先在根目录下建立以上三个文件。微信小程序
app.json 文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。该文件下的配置参考 文档详情。如下列出本项目中的 app.json 的配置。数组
pages:pages 接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项表明对应页面的【路径+文件名】信息,数组的第一项表明小程序的初始页面。小程序中新增/减小页面,都须要对 pages 数组进行修改。微信
window:用于设置小程序的状态栏、导航条、标题、窗口背景色。网络
tabBar:底部 tab 切换页面,tabBar 中的 list 是一个数组,最少配置2个、最多5个,tab 按数组的顺序排序。app
{ "pages": [ "pages/homepage/index", "pages/classify/index", "pages/collect/index", "pages/search/index", "pages/detail/index", "components/search/index", "components/tags/index", "components/card/index", "components/detail/index", "components/listItem/index" ], "window": { "navigationBarBackgroundColor": "#ffffff", "navigationBarTextStyle": "black", "navigationBarTitleText": "菜谱", "backgroundColor": "#eeeeee", "backgroundTextStyle": "light", "enablePullDownRefresh": false }, "tabBar": { "list": [ { "pagePath": "pages/homepage/index", "text": "首页", "selectedColor": "#000000", "iconPath":"/img/homepage.png", "selectedIconPath":"/img/homepage_selected.png" }, { "pagePath": "pages/classify/index", "text": "分类", "selectedColor": "#000000", "iconPath": "/img/classify.png", "selectedIconPath": "/img/classify_selected.png" }, { "pagePath": "pages/collect/index", "text": "收藏", "selectedColor": "#000000", "iconPath": "/img/collect.png", "selectedIconPath": "/img/collect_selected.png" } ] } }
一个页面由四个文件组成,在 pages 内的每一个文件夹下建立这四个文件。
index.json
对当前页面的配置,在该文件中先放入一个空对象。
{}
index.js
Page( ) 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。文档详情
pages 目录下的全部 index.js 文件中Page( ) 函数内先放入一个空对象。
Page({})
index.json
{ "component": true }
index.js
Component({});
至此,项目搭建工做已完成。