您的位置:首页 > 移动开发 > 微信开发

微信小程序

2016-12-13 15:11 106 查看
目录结构:pages/

        index/

          index.js 配置文件入口,page()

          index.wxml 配置页面布局、UI

          index.wxss 页面的样式文件,可选,可覆盖app.wxss

          index.json 页面当前窗口定义 "window",可选,可覆盖app.json 的window中的配置

     app.js App() 定义一个实例化方法,传入config配置项;定义项目的启动入口

     app.json "pages":数组,配置每个页面;"window":JSON对象,定义当前窗口设置

     app.wxss 项目样式 (可选)

数据的双向绑定:.wxml:{{text}} 在 .js 里定义data:{text:'xxx'}

            bindtap='btnClick' btnClick:function(){ this.setData({text:'new xxx'})}

渲染模式:条件渲染 判断标签<view wx:if="{{false}}">{{text}}1</view> 如果为false 就掩藏,为true 就显示。<view wx:else >{{text}}2</view>

    循环标签:<view wx:for="{{['aaa','bbb','ccc']}}">{{index}}-{{item}}</view> //其中默认为item 读取到数组中的每一项,可以通过wx:for-item='news-item' 自定义;

<view wx:for="{{['aaa','bbb','ccc']}}" wx:for-item="itemx">{{itemx}}</view>

模版饮用:

方式1:include 相当于把全部内容包括节点引入进来:<include src="../templates/header" />

方式2:import 导入<template> 需要指定name值

<import src='../template/footer'/>

<template is='footers' data="{{text:'导入的设置内容...'}}" /> 同时设置data来激活模版中的{{text}}

事件 :

点击事件 tap

长按事件 longtap

触摸事件 touchstart touchend touchmove touchcancel

其他 submit input...

事件冒泡:点击事件、长安事件、触摸事件都属于冒泡事件

通过bindtap绑定的事件会触发事件冒泡

通过catchtap绑定的事件不会触发事件冒泡

事件的对象:currenttarget是当前绑定的事件

      target是触发的事件源 是冒泡的根元素

      dataset 自定义属性 data-id='' data-title=''

api配置:参考官网https://mp.weixin.qq.com/debug/wxadoc/dev/framework/config.html?t=20161122

app的生命周期:

App({
onLaunch: function () {
数据加载
},
onShow: function () {
显示
},
onHide: function () {
切换至后台时  
}
})

可在app里定义全局变量或方法,子页面通过var app= getApp() ; app.xxx获取

页面page()的生命周期

Page({
data:{
String1
},
onLoad:function(options){ 1
// 页面初始化 options为页面跳转所带来的参数
String2
},
onReady:function(){ 3
// 页面渲染完成
String3
},
onShow:function(){ 2
// 页面显示 、进入此页面触发
String4
},
onHide:function(){
// 页面隐藏,\跳转至其他页面时触发 、切换至后台
String5
},
onUnload:function(){
// 页面关闭 、离开的此页面触发
String6
}
})

页面跳转:

方式1 wx.navigateTo({url:'../logs/logs?id=1'})

    wx.redirectorTo({...}) 禁用返回

方式2 <navigator url='' redirector><view....</navigator> //加redirector 禁用了返回功能

布局
1 flex布局



flex container 容器的属性:

flex-direction 决定元素的排列方向

flex-wrap 决定元素是否换行 wrap-reverse;wrap; nowrap;

flex-flow:flex-direction和flex-wrap的简写 row nowrap;

justify-content 元素在主轴上的对齐方式 center; flex-start; flex-end; space-around均匀对齐 ; space-between两端对齐;

align-items 元素在交叉轴上的对齐方式 stretch (当元素没设置高度时,让item占据整个容器的高度);baseline:以内在一行文字的对齐;center ; flex-start; flex-end;

flex item 元素的属性:

flex-grow 当空间多余时,元素的放大比例 默认为0 1标示均匀充满主轴容器宽度。

flex-shrink 当空间不足时,元素的缩小比例 默认为1 当空间不足时 默认等比缩小;0不缩小

flex-basis 元素在主轴上占据的空间 300px;

flex 是grow shrink basis 的简写

order 定义元素的排列顺序

align-self 定义元素自身的对齐方式 (会覆盖align-items)

2 相对布局 绝对布局

relative 想对自身的定位

absolute 相对于最近的已定位的父元素进行的定位

动态伪类选择器(:link,:visited,:hover,:active,:focus)

状态伪类选择器(:enabled,:disabled, :checked) 按钮禁用 选中

选择伪类选择器(:first-child,:last-child,:nth-child(),:nth-last-child(),:nth-of-type(),:nth-last-of-type(),:first-of-type,:last-of-type,:only-child,:only-of-type)

空内容伪类选择弃(:empty)

否定伪类选择弃(:not)

伪元素(::first-line第一行使用特定样式, ::first-letter第一个字符使用某种样式, ::before, ::after, ::selection) .text1::after{content:'...';}在text1文本后添加文本...

基础内容组件:icon text progress

视图容器组件:view scroll-view swiper

UI高级组件:

1 action-sheet <action-sheet hidden='{{}}' bindchange=''></action-sheet>

2 toast <toast hidden="{{toastHidden}}" duraction="1000"></toast>

3 loading <loading hidden="{{loadingHidden}}"></loading>

导航组件<navigator url='../logs/logs' redirect><view...</navigator>

地图组件<map ....>

画布 canvas

请求服务器数据:wx.request({url:'',data:{x:'',y:''},hearder:{},success:function(res){}})

产品开发过程 :

Xmind 思维导图分析需求

墨刀 原型图设计:页面元素 数据逻辑 操作逻辑

产品层级、组建模块化设计:(原因1 有代码大小限制、2 提高代码复用率)

方法1 通过WXML的import 和 include 来使用文件模版

  2 使用WXSS的@import 来引用 WXSS 文件

  3 使用JS的 require 来引用js文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: