经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » 微信小程序 » 查看文章
微信小程序全局文件的使用详解
来源:jb51  时间:2022/8/2 20:47:15  对本文有异议

我们前边两篇介绍了账号的申请、注册,工具的安装,云服务的开通。本篇我们介绍一下基础语法。介绍的方法呢我们会结合上微搭低代码的工具一起做个对比。因为低代码工具也产生了非常多的技术概念,但最终在发布成小程序的时候也是按照微信的规范去生成的,把微信开发者工具学会了也可以更深入的了解低代码的相关概念。

全局文件

小程序中是分为全局和页面级两部分。全局是在小程序的所有页面都有效,页面级是只在当前页面中生效。小程序根目录有三个文件app.js、app.json、app.wxss这三个就是全局的。

在低代码中我们是在低码编辑器里看全局文件

我们这里的lifecycle相当于app.js,style相当于app.wxss,那app.json相当于啥呢?app.json是放的所有可以访问到的页面,相当于我们低码中的页面管理部分

在app.js中我们可以设置全局生命周期和全局变量

  1. // app.js
  2. App({
  3. onLaunch: function () {
  4. if (!wx.cloud) {
  5. console.error('请使用 2.2.3 或以上的基础库以使用云能力');
  6. } else {
  7. wx.cloud.init({
  8. // env 参数说明:
  9. // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
  10. // 此处请填入环境 ID, 环境 ID 可打开云控制台查看
  11. // 如不填则使用默认环境(第一个创建的环境)
  12. // env: 'my-env-id',
  13. env:'env-3gsnzui',
  14. traceUser: true,
  15. });
  16. }
  17. this.globalData = {};
  18. }
  19. });

onLanch就是一个全局的生命周期函数,在小程序一启动的时候就会加载。那这里边一般干些啥呢?比如你需要加载用户信息、角色的,就可以在这个函数里添加代码。

和低码中不同的是,我们全局对象在设置属性的时候是用的this关键字,这个关键字指向了对象自身,因为我们是在全局对象里,所以this指向的是全局对象。

低码中的全局对象是在变量中定义的,我们可以打开变量看到全局对象

我们这里的global相当于小程序中的globalData。我们可以看一下微搭中的生命周期函数

  1. export default {
  2. onAppLaunch(launchOpts) {
  3. //console.log('---------> LifeCycle onAppLaunch', launchOpts)
  4. },
  5. onAppShow(appShowOpts) {
  6. //console.log('---------> LifeCycle onAppShow', appShowOpts)
  7. },
  8. onAppHide() {
  9. //console.log('---------> LifeCycle onAppHide')
  10. },
  11. onAppError(options) {
  12. //console.log('---------> LifeCycle onAppError', options)
  13. },
  14. onAppPageNotFound(options) {
  15. //console.log('---------> LifeCycle onAppPageNotFound', options)
  16. },
  17. onAppUnhandledRejection(options) {
  18. //console.log('---------> LifeCycle onAppUnhandledRejection', options)
  19. }
  20. }

上述两个文件理解了之后,我们还需要理解一下app.json

  1. {
  2. "pages": [
  3. "pages/index/index",
  4. "pages/getOpenId/index",
  5. "pages/getMiniProgramCode/index",
  6. "pages/deployService/index",
  7. "pages/createCollection/index",
  8. "pages/uploadFile/index",
  9. "pages/selectRecord/index",
  10. "pages/updateRecord/index",
  11. "pages/updateRecordResult/index",
  12. "pages/updateRecordSuccess/index",
  13. "pages/sumRecord/index",
  14. "pages/sumRecordResult/index"
  15. ],
  16. "window": {
  17. "backgroundColor": "#F6F6F6",
  18. "backgroundTextStyle": "light",
  19. "navigationBarBackgroundColor": "#F6F6F6",
  20. "navigationBarTitleText": "云开发 QuickStart",
  21. "navigationBarTextStyle": "black"
  22. },
  23. "sitemapLocation": "sitemap.json",
  24. "style": "v2"
  25. }

这里重点是要知道pages的这个结构,每一个可以访问的页面都有一个路径,可以看一下微信开发者工具页面的结构

微信开发者工具,首页是放在数组里的第一个元素,有的同学会问,为啥会有两个Index呢?因为第一个index是文件夹,第二个index才指向的是具体的index.wxml这个才是具体的页面。

低码中也需要理解这个概念,尤其我们在做分享转发的时候,你需要填写分享的路径,不理解小程序这个概念,有时候你就不知道该写啥。

最后一个就是全局样式,如果公共的样式可以写到这个文件里,方便后续页面的引用

  1. /**app.wxss**/
  2. .container {
  3. display: flex;
  4. flex-direction: column;
  5. align-items: center;
  6. box-sizing: border-box;
  7. }
  8. button {
  9. background: initial;
  10. }
  11. button:focus{
  12. outline: 0;
  13. }
  14. button::after{
  15. border: none;
  16. }
  17. page {
  18. background: #f6f6f6;
  19. display: flex;
  20. flex-direction: column;
  21. justify-content: flex-start;
  22. }

这里的语法是CSS的语法,因此有必要学习一下CSS。低代码中的全局样式是在style文件中编制

  1. // icon
  2. .job-icon{
  3. display: inline-flex !important;
  4. align-items: center;
  5. color: rgba(0, 0, 0, 0.4);
  6. .weda-image{
  7. object-fit: cover !important;
  8. // height: 100% !important;
  9. width: auto !important;
  10. }
  11. &--location{
  12. }
  13. }
  14. // 搜索
  15. .job-search {
  16. margin: 44px 0 22px;
  17. &__input{
  18. .weda-ui .weui-cells {
  19. margin-top: 0;
  20. }
  21. .weui-cells{
  22. &::before,&::after{
  23. display: none;
  24. }
  25. }
  26. .weui-cell_active:active:after{
  27. border-radius: 40px;
  28. }
  29. .weui-cell__bd{
  30. border-radius: 40px;
  31. background-color: #F3F3F3;
  32. display: flex;
  33. align-items: center;
  34. justify-content: center;
  35. position: relative;
  36. padding: 16px 32px 16px 80px;
  37. &::before{
  38. content: '';
  39. width: 36px;
  40. height: 36px;
  41. margin-left: 30px;
  42. position: absolute;
  43. left: 0;
  44. background-size: cover;
  45. background-image: url("https://lowcode-9gu72kpiac8de2d6-1252394733.tcloudbaseapp.com/resources/2022-03/lowcode-182749");
  46. }
  47. }
  48. .weda-ui.weda-input .weui-btn_input-clear{
  49. padding-right: 0;
  50. }
  51. .weui-cell.weui-cell_form{
  52. padding: 0;
  53. }
  54. .weda-ui.weda-input input.weui-input{
  55. padding: 0;
  56. font-size: 28px;
  57. margin: 0;
  58. box-sizing: border-box;
  59. text-align: left;
  60. height: 48px;
  61. line-height: 48px;
  62. border-radius: 0px;
  63. }
  64. }
  65. }
  66. // 图文排版
  67. .job-media{
  68. &__img{
  69. &-main{
  70. width: 100px;
  71. height: 100px;
  72. }
  73. }
  74. &__info{
  75. margin-left: 20px;
  76. &-title{
  77. font-size: 48px;
  78. }
  79. &-desc{
  80. font-size: 28px;
  81. }
  82. }
  83. }
  84. // 用户信息
  85. .job-user{
  86. &__media{
  87. display: flex;
  88. align-items: center;
  89. justify-content: flex-end;
  90. &-main{
  91. flex-grow: 1;
  92. flex-shrink: 1;
  93. display: flex;
  94. align-items: center;
  95. &__img{
  96. flex-grow: 0;
  97. flex-shrink: 0;
  98. width: 52px;
  99. height: 52px;
  100. border-radius: 50%;
  101. margin-right: 20px;
  102. }
  103. &__name{
  104. flex-grow: 1;
  105. flex-shrink: 1;
  106. font-size: 28px;
  107. text-align: left;
  108. color:rgba(0, 0, 0, 0.6);
  109. }
  110. }
  111. }
  112. }
  113. // 标签
  114. .job-tag{
  115. flex-wrap: wrap;
  116. &__item{
  117. margin-bottom: 20px;
  118. }
  119. }
  120. // flex
  121. .job-flex{
  122. &__value0{
  123. flex-grow: 0;
  124. flex-shrink: 0;
  125. padding-left: 12px;
  126. color: #2262E6;
  127. }
  128. }
  129. // 上推
  130. .job-scroll__up{
  131. .index-top-title{
  132. display: none;
  133. }
  134. .index-scroll-inside{
  135. overflow: visible !important;
  136. // 以下的js计算
  137. padding-top: 250px;
  138. }
  139. .job-search{
  140. position: fixed;
  141. top: 0;
  142. left: 0;
  143. z-index: 99;
  144. margin: 0;
  145. right: 0;
  146. background: linear-gradient(rgb(34, 98, 230) 0%, rgb(19, 160, 255) 100%);
  147. // 以下的js计算
  148. padding: 28px 200px 28px 24px;
  149. }
  150. }

可以看到低代码中的样式更复杂,会有嵌套关系,所以写起来难度会更大一点。如果样式这块不是太擅长,建议用可视化的方式进行设置,也节约了不少的学习成本。

总结

我们本篇介绍了微信小程序里的全局文件,和低代码工具做了一个横向的对比。代码的方式通常难度更大,低码工具其实是将这些概念进行提炼,以可视化的方式进行设置,大大的降低了开发门槛。感兴趣的同学可以安装一下两个工具,对比一下各种概念,也可以拓宽知识面。

到此这篇关于微信小程序全局文件的使用详解的文章就介绍到这了,更多相关小程序全局文件内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号