导语:最近开发了一个基于 uniapp 框架的我的项目,有一些感触和领会,所以想记录以下一些技术和教训,在这里做一个系列总结,算是对本人做一个交代吧。目录简介全局文件全局组件罕用 API条件编译插件开发简介uniapp 是 DCloud 公司于 2015 年开发的一款基于 vue 的跨端框架,编写一套代码就能够运行到 web、小程序(各种小程序)和 app(Android 和 iOS)端,使得开发一个我的项目的老本很小,效率很高,方便快捷。
uniapp 官网
性能框架图
各端运行成果
全局文件这里次要是两个文件:pages.json治理页面路由、和manifest.json治理利用配置。
pages.jsonpages.json 文件是进行全局配置,包含页面文件门路、款式、原生导航栏等内容。
以下是官网给出的配置示例:
{ "pages": [ { "path": "pages/component/index", "style": { "navigationBarTitleText": "组件" } }, { "path": "pages/API/index", "style": { "navigationBarTitleText": "接口" } }, { "path": "pages/component/view/index", "style": { "navigationBarTitleText": "view" } } ], "condition": { //模式配置,仅开发期间失效 "current": 0, //以后激活的模式(list 的索引项) "list": [ { "name": "test", //模式名称 "path": "pages/component/view/index" //启动页面,必选 } ] }, "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "演示", "navigationBarBackgroundColor": "#F8F8F8", "backgroundColor": "#F8F8F8", "usingComponents": { "collapse-tree-item": "/components/collapse-tree-item" }, "renderingMode": "seperated", // 仅微信小程序,webrtc 无奈失常时尝试强制敞开同层渲染 "pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),反对 auto / portrait / landscape "rpxCalcMaxDeviceWidth": 960, "rpxCalcBaseDeviceWidth": 375, "rpxCalcIncludeWidth": 750 }, "tabBar": { "color": "#7A7E83", "selectedColor": "#3cc51f", "borderStyle": "black", "backgroundColor": "#ffffff", "height": "50px", "fontSize": "10px", "iconWidth": "24px", "spacing": "3px", "iconfontSrc": "static/iconfont.ttf", // app tabbar 字体.ttf文件门路 app 3.4.4+ "list": [ { "pagePath": "pages/component/index", "iconPath": "static/image/icon_component.png", "selectedIconPath": "static/image/icon_component_HL.png", "text": "组件", "iconfont": { // 优先级高于 iconPath,该属性依赖 tabbar 根节点的 iconfontSrc "text": "\ue102", "selectedText": "\ue103", "fontSize": "17px", "color": "#000000", "selectedColor": "#0000ff" } }, { "pagePath": "pages/API/index", "iconPath": "static/image/icon_API.png", "selectedIconPath": "static/image/icon_API_HL.png", "text": "接口" } ], "midButton": { "width": "80px", "height": "50px", "text": "文字", "iconPath": "static/image/midButton_iconPath.png", "iconWidth": "24px", "backgroundImage": "static/image/midButton_backgroundImage.png" } }, "easycom": { "autoscan": true, //是否主动扫描组件 "custom": { //自定义扫描规定 "^uni-(.*)": "@/components/uni-$1.vue" } }, "topWindow": { "path": "responsive/top-window.vue", "style": { "height": "44px" } }, "leftWindow": { "path": "responsive/left-window.vue", "style": { "width": "300px" } }, "rightWindow": { "path": "responsive/right-window.vue", "style": { "width": "300px" }, "matchMedia": { "minWidth": 768 } }}manifest.jsonmanifest.json 文件是利用的配置文件,用于指定利用的名称、图标、权限等内容。
...