微信小程序初始


1、小程序是什么?
     小程序是一种新的开放能力,开发者可以快速地开发一个小程序。小程序可以在微信内被便    捷地获取和传播,同时具有出色的使用体验。

2、微信小程序的优势和劣势
     优势:(1)微信助理,容易推广(2)使用便捷 (3)体验良好,有接近原生app的体验。(4)成本更低
     不足:(1)单个包大小限制为2M,这导致无法开发大型的应用,采用分包最大是20M(2)需要像app一样审核上架,这点相对于H5的发布要麻烦一些。(3)处处受微信限制

3、项目的目录结构
     pages:
    wxml: 编写小程序界面结构的地方
    wxss: 编写小程序样式的地方
    json:编写界面配置的地方
    js:编写界面逻辑的地方
utils: 编写工具类的地方
app.js:创建程序实例的位置
app.json: 编写全局配置地方
app.wxss: 编写全局样式的地方
project.config.json: 项目的配置文件
sitemap.json:配置哪些网站可以被检索到

4、小程序模板语法WXML  全称 WeiXin Markup Language 是小程序框架设计的一套标签语言,结合小程序的基础组件、事件系统,可以构建出页面的结构。
     (1)标签的使用:view ---> div   text ---> span  image ----> img  
      https://developers.weixin.qq.com/miniprogram/dev/component/
      (2)数据定义:data: {
    msg:"hello world",
    num: 18,
      },  
      (3)引用数据  <view>{{num +10}}</view>
        (4)逻辑渲染 <view wx:if="{{condition}}"> True </view>
    <view wx:if="{{length > 5}}"> 1 </view>
    <view wx:elif="{{length > 2}}"> 2 </view>
    <view wx:else> 3 </view>
    <view hidden="{{condition}}">隐藏</view> 通过操控display来实现
      (5)列表渲染:  在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item。
    使用 wx:for-item 指定数组当前元素的变量名,使用 wx:for-index 指定数组当前下标的变量名
    <view wx:for="{{array}}" wx:for-index="idx" wx:for-    item="itemName">
      {{idx}}: {{itemName.name}}
    </view>
        (6)Key       wx:key 的值以两种形式提供:
    1.字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
    2.保留关键字 this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字。 
         (7)Template : WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。使用 name 属性,作为模板的名字。然后在 <template/> 内定义代码片段,
    使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入
    引用:WXML 提供两种文件引用方式import和include。
    Import:只导入template的内容,import 有作用域的概念,即只会 import 目标文件中定义的 template,而不会 import 目标文件中 import 的 template,简言之就是 import 不具有递归的特性。
    include:导入除了template,

5、小程序样式wxss
    (1)尺寸单位 :1rpx = (屏幕宽度/750)px
    (2)样式的导入:@import './test_0.wxss'
    (3)小程序中的样式选择器 :类名选择器 .class    id选择器 #id  元素选择器 view        伪元素选择器  ::after   ::before 

6、小程序中的JS 
     (1)小程序中的js和浏览器中和node中的区别
    浏览器中JS:ES、DOM、BOM  
    Node中的JS:ES、NPM、Native    
    小程序中的JS:ES、小程序框架、小程序API
     (2)小程序目前可以运行在三大平台:
    1.iOS平台,包括iOS9、iOS10、iOS11
    2.Android平台
    3.小程序IDE

7、小程序中的数据渲染
    JS是单线程的
      (1)小程序和浏览器中有什么不同:浏览器中渲染是单线程的。
    而在小程序中的运行环境分成渲染层和逻辑层, WXML 模板和 WXSS 样式工作在渲染层,JS 脚本工作在逻辑层。
      (2)在 JS 脚本使用 this.setData 方法把 msg 字段设置
    this.setData({ msg: 'Hello World' })
    可以看到3个点:
    1.渲染层和数据相关。
    2.逻辑层负责产生、处理数据。
    3.逻辑层通过 Page 实例的 setData 方法传递数据到渲染层。

8、程序和界面
   (1)程序:“小程序”指的是产品层面的程序,而“程序”指的是代码层面的程序实例,为了避免误解,下文采用App来代替代码层面的“程序”概念
    App({
      onLaunch: function(options) {},
      onShow: function(options) {},
      onHide: function() {},
      onError: function(msg) {},
      globalData: 'I am global data'
    })
     globalData全局数据  获取全局数据: let app = getApp()

      onLaunch: 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
    onLaunch(){}
      onShow:当小程序启动,或从后台进入前台显示,会触发 onShow
    onshow(){}
      onHide:当小程序从前台进入后台,会触发 onHide
    onHide(){}
      onError:当小程序发生脚本错误,或者 API 调用失败时,会触发 onError 并带上错误信息。
    onError(){}
     其他字段:可以添加任意的函数或数据到 Object 参数中,在App实例回调用 this 可以访问。
    (2)Page:一个小程序可以有很多页面,每个页面承载不同的功能,页面之间可以互相跳转。
    (3)页面构造器
    Page({
      data: { text: "This is page data." },
      onLoad: function(options) { },
      onReady: function() { },
      onShow: function() { },
      onHide: function() { },
      onUnload: function() { },
      onPullDownRefresh: function() { },
      onReachBottom: function() { },
      onShareAppMessage: function () { },
      onPageScroll: function() { }
    })
      (4)生命周期
    onLoad:生命周期函数--监听页面加载,触发时机早于onShow和onReady
    onReady:生命周期函数--监听页面初次渲染完成
    onShow:生命周期函数--监听页面显示,触发事件早于onReady
    onHide:生命周期函数--监听页面隐藏
    onUnload:生命周期函数--监听页面卸载
    注意事项:
    直接修改 Page实例的this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
    由于setData是需要两个线程的一些通信消耗,为了提高性能,每次设置的数据不应超过1024kB。
    不要把data中的任意一项的value设为undefined,否则可能会有引起一些不可预料的bug。
      (5)页面的用户行为:
    onPullDownRefresh 下拉刷新
    onReachBottom 上拉触底
    onPageScroll 页面滚动
    onShareAppMessage 用户转发 ;Page({
    onShareAppMessage: function () {
     return {
       title: '自定义转发标题',
    // 自定义点击链接需要跳转的页面,默认当前页面
       path: '/page/user?id=123'
     }
    }
    })
      (6)事件
    (1)事件定义
    <view bindtap="handleTap">点击事件</view>
    <view bind:tap="handleTap">另一种写法</view>
    Page({
        handleTap(){
            console.log("执行了点击事件");
       }
    })
    (2)事件类型
    touchstart    手指触摸动作开始
    touchmove    手指触摸后移动
    touchcancel    手指触摸动作被打断,如来电提醒,弹窗
    touchend    手指触摸动作结束
    tap    手指触摸后马上离开
    longpress    手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发
    longtap    手指触摸后,超过350ms再离开(推荐使用longpress事件代替)
    transitionend    会在 WXSS transition 或 wx.createAnimation 动画结束后触发
    animationstart    会在一个 WXSS animation 动画开始时触发
    animationiteration    会在一个 WXSS animation 一次迭代结束时触发
    animationend    会在一个 WXSS animation 动画完成时触发
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WeChat624

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值