微信小程序_经验

一、入门

1.app.js

app.js 是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用 MINA提供的丰富的 API,如本例的同步存储及同步读取本地数据。

2.app.json
app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口 背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释

eg:
{
    "pages":[
    "pages/index/index",
    "pages/logs/logs"
    ]
}

// 注意:pages/index/index 最后的index,就包含了index.js index.wxml index.wxss三个文件

3.index.js
index.js 是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。

4..wxss
页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss中指定的样式规则

  1. .json
    页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.jsonwindow中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

6..wxml

布局文件

<!-- logs.wxml -->
<view class="container log-list">
</view>

二、生命周期:

index.js里面:

生命周期是:App Launch -> App Show -> onload -> onShow -> onReady

1)整个app的启动与现实。app的启动在app.js中可配置。
2)进入各个页面的加载显示等。(这里,loading的指示器显示等)。
3)界面跳转:
a)wx.navigateTo(OBJECT):保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
b)wx.redirectTo(OBJECT):关闭当前页面,跳转到应用内的某个页面。
c)wx.nacigateBack():当前页面关闭,回退到前一页面。

三、八大组件

这里可以参考官方文档,比较全面。

四、外部框架

原生的js插件和外部框架都不能使用,因为他们几乎都是操作DOM的内容,而微信应用号不允许操作任何DOM。动态设置的rem.js也不能支持。

五、WebSocket

微信提供WebSocket让我们可以做即时聊天,十分方便。

六、tabBar

*注意:微信的底部菜单最多支持五栏(五个 icons
tabBartext属性可以去掉,而且没有text属性的时候,tabBar高度会降低。

七、知识点

1)*注意:wechat开发工具并不完善,每次编辑了哪个页面,必须ctrl + s:保存一下.

2)F5是刷新页面,可以刷新测试的demo界面

*注意:修改wxmlwxss下的内容后,直接 F5 刷新就能直接看到效果,修改js则需点击重启按钮才能看到效果。

3)建议在subline或者webStorm下开发微信小程序

4)基于微信开发工具并不人性化目前,建议在新建页面的时候,首先在app.jsonpages中先添加:"pages/index/index",再新建一个wxml文件的同时,把对应的jswxss文件一起新建好,因为微信应用号的配置特点就是解析到一个wxml文件时,会同时在同级目录下找到同文件名的jswxss文件.

5)相对于html的<div>,在小程序中使用<view>

6)使用class名来设置样式,id名在这里基本没有什么用处。原因是主要操作数据,不操作dom

7)wxss文件是引入的样式文件,可以直接在里面写样式,但是不推荐

eg:
     @import "wxss/index.css";
      body{
            background:pink;  
      }

8)app.jsonwindow是配置顶部的一些样式
tabBar 是配置底部的配置

9)window作用:

用于设置小程序的状态栏,导航栏,标题,窗口背景色。// 窗口指的是页面的back

*注:在app.json中配置的属性会被子window的属性所覆盖。
属性有:
"navigationBarBackgroundColor":"#666666"
"navigationBarTextStyle":"white" // 注意:这里仅支持white/black/light
"navigationBarTitleText":"微信demo" // 导航栏标题文字
"bacgroundColor":"#333333" // 窗口的背景色
"backgroundTextStyle":"dark" // 下拉背景字体,loading图的杨啊是,仅仅支持 dark/light
"enablePullDownRefresh":"false" // 是否开启下拉刷新

10).js文件主要作用逻辑,和生命周期函数处理

11)小程序中的导入:

a).js => require
b).wxss => import

12)在css中display属性作用

eg:

{
      display:none; // 不显示
      display:block;  // 此元素将显示为块级元素,此元素前后会带有换行符
      display:inline;  // 默认。此元素会被显示为内联元素,元素前后没有换行符。
      display:inline-block;   // 行内块元素
       ....... // 参考 [display解释](http://www.w3school.com.cn/cssref/pr_class_display.asp)
}

在微信小程序中:

`display:flex;`  //   参考:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html  作用是  `flex `是` flexiable box` 用于移动布局。 为盒状模型提供了最大的灵活性。任何一个容器都能够制定为Flex布局。

webkit内核的浏览器:safari是一个

*注意:设为Flex布局以后,子元素的floatclearvertical-align属性将失效。

13)rpx单位介绍:
微信小程序中的css尺寸单位,rpx可以根据屏幕宽度进行自适应。规定的屏幕宽度为750rpx.
参考: http://www.51xuediannao.com/javascript/xiaochengxu_rpx.html

14) indicator-dots = "{{indicatorDots}}" 为何用{{}}包裹

<swiper class="swiper_box" indicator-dots="{{indicatorDots}}" vertical="{{vertical}}">

解释:绑定的数据。也可以说是一种MVVM的模板语法。VUE AN基本都是这么干的。语法格式。应该是框架加进去的自定义属性,{}看框架咋定义,有些事function,有些是参数。标签里面遇到像data,ng-model, indicator-dots这样的属性,一般都是框架加进去的。

15)Page()函数用来注册一个页面。接受一个object参数。其指定页面的初始数据,生命周期函数,时间处理函数等。

Page()相当于一个构造函数。

Page({
    data:{
          indicatorDots:true,
          vertical:false,
          autoplay:true,
          interval:3000
    },
    
    // 时间处理函数
    swiperchange:function(e){
         // contents
    }
})
  1. jsvar that = this; 的解释

this对象在程序中随时会改变,而var that=this之后,that没改变之前仍然是指向当时的this,这样就不会出现找不到原来的对象

17)App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

App.prototype.getCurrentPage()
getCurrentPage()函数用户获取当前页面的实例。

var app = getApp(); 微信提供了全局的 getApp() 函数,可以获取到小程序实例。

不要在定义于 App()内的函数中调用 getApp() ,使用 this就可以拿到 app 实例。

不要在onLaunch的时候调用 getCurrentPage(),此时 page 还没有生成。

通过 getApp() 获取实例之后,不要私自调用生命周期函数。

实用经验,自己出错过的

  1. bindtap 不能写为:bindTap
    给view绑定事件的时候

2.Page中的2个方法中, 需要用,隔开:

Page({
  onLoad: function () {
    console.log('onLoad-search')

  },

  // 返回前一页
  navigateBack: function(e) {
    console.log("back");
  }

})

3.设置都是 :, 不是=:

// 清除
clearText: function(e) {

    this.setData({
      input_str:""   // 之前是=就会报错
    })
  },

display:none 与 display:block 相对应后者会显示

5.主要原则:

不是改变父元素,是改变item对应的数据变量。

6.事件:

Page({
  bindViewTap:function(event){
    event.target.dataset.alphaBeta === 1 // - 会转为驼峰写法
    event.target.dataset.alphabeta === 2 // 大写会转为小写
  }
})
  1. 微信小程序判断
    wx-if="{{index==0}}"

8.当前target
console.log(e.currentTarget);

9.表达式

{{}} 里面不能嵌套 {} 或者 {{}} , 里面自然会使用变量

{{ dic-index }} // 如果index 变量为1. 结果就为dic-1

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容