小程序文件夹目录分析 转

  目录结构显示,在小程序项目的根目录下面包含3个app开头的文件(app.js、app.json、app.wxss)以及pages目录与utils目录。其中pages目录存放了2个页面(index和log)的构成文件。每个页面都是一个目录,目录名就是唯一的页面名,其下由以页面名为前缀的2~4个文件组成。

   小程序的目录文件结构如上,左侧的3个app文件必须放在小程序根目录下面,其他文件由开发者自由控制。

  app.js是小程序的脚本代码,用来监听并处理小程序的生命周期、声明全局变量、调用框架提供的丰富API等。 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//app.js
App({
   onLaunch: function () {
     //调用API从本地缓存中获取数据
     var logs = wx.getStorageSync( 'logs' ) || []
     logs.unshift(Date.now())
     wx.setStorageSync( 'logs' , logs)
   },
   getUserInfo: function (cb){
     var that = this
     if ( this .globalData.userInfo){
       typeof cb == "function" && cb( this .globalData.userInfo)
     } else {
       //调用登录接口
       wx.login({
         success: function () {
           wx.getUserInfo({
             success: function (res) {
               that.globalData.userInfo = res.userInfo
               typeof cb == "function" && cb(that.globalData.userInfo)
             }
           })
         }
       })
     }
   },
   globalData:{
     userInfo: null
   }
})

  app.json是对整个小程序的全局配置,配置小程序是由哪些页面组成,配置小程序的窗口背景颜色、配置导航条样式、配置默认标题等。(json文件中不可以加注释)

1
2
3
4
5
6
7
8
9
10
11
12
{
   "pages" :[
     "pages/index/index" ,
     "pages/logs/logs"
   ],
   "window" :{
     "backgroundTextStyle" : "light" ,
     "navigationBarBackgroundColor" : "#fff" ,
     "navigationBarTitleText" : "WeChat" ,
     "navigationBarTextStyle" : "black"
   }
}

  app.wxss是整个小程序的公共样式表。

1
2
3
4
5
6
7
8
9
10
/**app.wxss**/
.container {
   height: 100%;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: space-between;
   padding: 200rpx 0;
   box-sizing: border-box;
}

  其中app.js和app.json是必需的。

  小程序页面是由同路径下同名不同后缀的2~4个文件组成:

  .js后缀的文件是脚本文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//index.js
//获取应用实例
var app = getApp()
Page({
   data: {
     motto: 'Hello World' ,
     userInfo: {}
   },
   //事件处理函数
   bindViewTap: function () {
     wx.navigateTo({
       url: '../logs/logs'
     })
   },
   onLoad: function () {
     console.log( 'onLoad' )
     var that = this
     //调用应用实例的方法获取全局数据
     app.getUserInfo( function (userInfo){
       //更新数据
       that.setData({
         userInfo:userInfo
       })
     })
   }
})

  .json后缀的文件是配置文件。(如存在,会层叠覆盖app.json的window中相同的配置项,json文件中不可以加注释)

  .wxss后缀的样式表文件。(如存在,会层叠覆盖app.wxss中的样式规则)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**index.wxss**/
.userinfo {
   display: flex;
   flex-direction: column;
   align-items: center;
}
 
.userinfo-avatar {
   width: 128rpx;
   height: 128rpx;
   margin: 20rpx;
   border-radius: 50%;
}
 
.userinfo-nickname {
   color: #aaa;
}
 
.usermotto {
   margin-top: 200px;
}

  .wxml后缀的文件是页面结构文件。

1
2
3
4
5
6
7
8
9
10
<!--index.wxml-->
<view class = "container" >
   <view  bindtap= "bindViewTap" class = "userinfo" >
     <image class = "userinfo-avatar" src= "{{userInfo.avatarUrl}}" background-size= "cover" ></image>
     <text class = "userinfo-nickname" >{{userInfo.nickName}}</text>
   </view>
   <view class = "usermotto" >
     <text class = "user-motto" >{{motto}}</text>
   </view>
</view>

  其中.js文件和.wxml文件时必需的。

  微信小程序中的每一个页面的“路径+页面名”都需要写在app.json的pages中,且pages中的第一个页面是小程序的首页。

猜你喜欢

转载自www.cnblogs.com/xiaozhang666/p/11376556.html