• 如何从零开始拆解uni-app开发的vue项目(一)


    uni-app项目分析:

    背景:最近接手一个前同事留下的半拉子项目,出拿过来觉得很简单;当我看到app.vue的时候很确定是vue项目,心里不怎么慌,果断安装node.js,然后就去npm ;安装VS code,事实并不是我期盼的那样,或者说根本就不能运行。

    报错:应用vs code打开文件,输入命令npm run dev,项目根本就没有运行,一直显示缺少一个package.json文件。

    最后由于进度问题,只能去找前同事,听他说前端这几年变化挺大,项目可能适用的是其他编译器,再三辗转确定是HBuilder X。 

    一番操作之后,我下载了HBuilder X之后,运行项目其实也不是很顺利,因为这个编译器虽然是免安装的,但是运行之后就会提示缺少运行的插件,还好都是无脑安装。

    项目运行后才发向,项目根本没有后台服务,当时心中有一万只羊驼一闪而过;这样的项目怎么还说是成功运行的?不管三七二十一,我先利用HBuilderX的内置管理器进行运行,登录的界面如下:

    为了进一步弄清uni.app开发程序的架构,首先打开APP.vue希望从这里查到一点蛛丝马迹,如下图所示:

    上图可以看到这个文件只有style样式和默认的Script方法;于是乎我只能从pages.json

    这里的json文件都是一些路径组合,从 注解中了解到uni.app开发vue程序的启动格式:

    //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages

    之后点击完对应的参考了解到:

     pages.json 页面路由

    pages.json 文件用来对 uni-app 进行全局配置,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。

    它类似微信小程序中app.json页面管理部分。注意定位权限申请等原属于app.json的内容,在uni-app中是在manifest中配置。

     以下是一个包含了所有配置选项的 pages.json :

    1. {
    2. "pages": [{
    3. "path": "pages/component/index",
    4. "style": {
    5. "navigationBarTitleText": "组件"
    6. }
    7. }, {
    8. "path": "pages/API/index",
    9. "style": {
    10. "navigationBarTitleText": "接口"
    11. }
    12. }, {
    13. "path": "pages/component/view/index",
    14. "style": {
    15. "navigationBarTitleText": "view"
    16. }
    17. }],
    18. "condition": { //模式配置,仅开发期间生效
    19. "current": 0, //当前激活的模式(list 的索引项)
    20. "list": [{
    21. "name": "test", //模式名称
    22. "path": "pages/component/view/index" //启动页面,必选
    23. }]
    24. },
    25. "globalStyle": {
    26. "navigationBarTextStyle": "black",
    27. "navigationBarTitleText": "演示",
    28. "navigationBarBackgroundColor": "#F8F8F8",
    29. "backgroundColor": "#F8F8F8",
    30. "usingComponents":{
    31. "collapse-tree-item":"/components/collapse-tree-item"
    32. },
    33. "renderingMode": "seperated", // 仅微信小程序,webrtc 无法正常时尝试强制关闭同层渲染
    34. "pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),支持 auto / portrait / landscape
    35. "rpxCalcMaxDeviceWidth": 960,
    36. "rpxCalcBaseDeviceWidth": 375,
    37. "rpxCalcIncludeWidth": 750
    38. },
    39. "tabBar": {
    40. "color": "#7A7E83",
    41. "selectedColor": "#3cc51f",
    42. "borderStyle": "black",
    43. "backgroundColor": "#ffffff",
    44. "height": "50px",
    45. "fontSize": "10px",
    46. "iconWidth": "24px",
    47. "spacing": "3px",
    48. "iconfontSrc":"static/iconfont.ttf", // app tabbar 字体.ttf文件路径 app 3.4.4+
    49. "list": [{
    50. "pagePath": "pages/component/index",
    51. "iconPath": "static/image/icon_component.png"
  • 相关阅读:
    设备树添加版本信息
    【AGC】典型问题8月第一期
    一张小图看尽 Nginx
    带你搞懂MySQL隔离级别,两个事务同时操作同一行数据会怎样?
    (02)Cartographer源码无死角解析-(10) 配置文件加载
    qemu-system-aarch64使用记录
    【数学建模】历年全国大学生数学建模竞赛题目+定位分析
    C++入门学习(1)命名空间和输入输出
    JetBrains ReSharper Ultimate 2023.2.2
    第5章 插叙:进程API
  • 原文地址:https://blog.csdn.net/A_nanda/article/details/136745467