小程序基础

小程序官方地址,小程序开发者工具,点击此处下载。在微信小程序中有一个配置文件project.config.json,此文件可以让开发者在不同设备中进行开发。

微信小程序共支持5种文件,wxmlwxssjsjsonwxs以及图片文件等。每一页面都具有wxmlwxssjsjson文件,但比不是必须的,小程序和网页类似,一种以html+css+js,而小程序则是wxml+wxss+js,如wxml用来描述页面结构,wxss用例描述页面的样式,js用来添加逻辑信息的。

wxml

wxml用来构建页面的结构

//数据绑定
<!--wxml-->
<view> {{message}} </view>
// page.js
Page({
data: {
message: 'Hello world!'
}
})

学会用数据绑定,wxml中的动态数据都可来自对应的Pagedata中的数据,如何绑定是很简单易懂的。如

// 使用{{ ... }}
<view> {{ message }} </view> <view id="item-{{id}}"> </view> // 对应中的Page的data数据
Page({
data: {
id: 0
}
}) <view wx:if="{{condition}}"> </view>
Page({
data: {
condition: true
}
})

重点

true:代表真值。

false:代表假值。

// 不可少的 {{ ... }}
<checkbox checked="{{ture}}"> </checkbox> <view hidden="{{flag ? true : false}}"> Hidden </view>
// 必备掌握
<view>{{object.key}} {{array[0]}}{{array[1]}}</view>
Page({
data: {
object: {
key: 'Hello '
},
array: ['hh','da']
}
})
// 数组
<view wx:for="{{[zero, 1, 2, 3]}}"> {{item}} </view>
Page({
data: {
zero: 0
}
})
// item,条目
<template is="object" data="{{for: a, bar: b}}"></template>
Page({
data: {
a: 1,
b: 2
}
})
// {for: 1, bar: 2}
// 用...来将一个对象展开
<template is="object" data="{{...obj1, ...obj2, e: 5}}"></template>
Page({
data: {
obj1: {
a: 1,
b: 2
},
obj2: {
c: 3,
d: 4
}
}
})
// {a: 1, b: 2, c: 3, d: 4, e: 5}
<template is="object" data="{{foo, bar}}"></template>
Page({
data: {
foo: 'my-foo',
bar: 'my-bar'
}
})
// {foo: 'my-foo', bar:'my-bar'}
// 后边的会覆盖前面
<template is="object" data="{{...obj1, ...obj2, a, c: 6}}"></template>
Page({
data: {
obj1: {
a: 1,
b: 2
},
obj2: {
b: 3,
c: 4
},
a: 5
}
})
// {a: 5, b: 3, c: 6}

列表的渲染,通过wx:for,下标变量名为 index,数组当前项的变量名为 item。

<view wx:for="{{array}}">
{{index}}: {{item.message}}
</view>
Page({
data: {
array: [{
message: 'foo',
}, {
message: 'bar'
}]
}
})
wx:for-item
wx:for-index
<view wx:for="{{array}}" wx:for-index="indexcoding" wx:for-item="itemcoding">
{{indexcoding}}: {{itemcoding.message}}
</view>
// wx:if="{{condition}}" wx:else wx:elif
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>

重点

wx:if 为 false,框架什么也不做,只有为真的时候才开始局部渲染。

wx:if 有更高的切换消耗而, hidden 有更高的初始渲染消耗。

// 模板 template
<template is=" ... " data="{{...item}}"/>
Page({
data: {
item: {
msg: 'this is a template'
}
}
})
// 事件
bindtap="tapName" Page({
tapName: function(event) {
console.log(event)
}
})

事件分类:(即区分父节点有事件也会被响应)

  1. 冒泡事件:会向父节点传递
  2. 非冒泡事件:不会向父节点传递
<view bindtap="add"> {{count}} </view>
Page({
data: {
count: 1
},
add: function(e) {
this.setData({
count: this.data.count + 1
})
}
})

import和include

<import src="item.wxml"/>
<template is="item" data="{{text: 'forbar'}}"/>
<!-- index.wxml -->
<include src="header.wxml"/>
<view> body </view>
<include src="footer.wxml"/> <!-- header.wxml -->
<view> header </view> <!-- footer.wxml -->
<view> footer </view>

WXSS

wxsscss大部分相同,但wxsscss进行了修改和补充,wxss的特性有尺寸单位样式导入,在小程序中你会看到rpx这样的尺寸单位,小程序开发初期是以iPhone 6 标准的,固定750rpx为屏幕宽度。

尺寸单位,屏幕宽固定为750rpx,在 iPhone6 上,屏幕宽度为375px,换算750rpx = 375px = 750物理像素。iPhone6中,1rpx = 0.5px

样式导入,使用@import语句,路径为相对路径;如:

/** index.wxss **/
.name {
padding:5px;
} /** app.wxss **/
@import "index.wxss";
.age {
padding:15px;
}

选择器

.class
#id
element
::after
::before

JS

js中文件运用到API的调用,点击传送门

生命周期

不用马上懂,别做项目别懂就行。

App()用来注册一个小程序,接受一个object参数。

onLaunch 监听小程序初始化
onShow 监听小程序显示
onHide 监听小程序隐藏

getApp()用来获取到小程序实例。

var app = getApp()
console.log(app.globalData)

页面 Page

onLoad 监听页面加载
onShow 监听页面显示
onReady 监听页面初次渲染完成
onHide 监听页面隐藏
onUnload 监听页面卸载

前台、后台定义:击左上角关闭或者按了Home 键离开,进入了后台,只有当小程序进入后台一定时间,或者系统资源占用过高,才会被销毁。

结语

  • 本文主要讲解 小程序基础知识点讲解-WXML + WXSS + JS,生命周期

  • 下面我将继续对小程序中的其他知识 深入讲解 ,有兴趣可以继续关注

  • 小礼物走一走 or 点赞

小程序基础知识点讲解-WXML + WXSS + JS,生命周期的更多相关文章

  1. 「小程序JAVA实战」 小程序默认加载的页面和生命周期(八)

    转自:https://idig8.com/2018/08/09/xiaochengxu-chuji-08/ 小程序如何加载的呢?生命周期!源码:https://github.com/limingios ...

  2. 微信小程序基础

    前言 什么是微信小程序,它是一种轻量级的APP,它与常规App来说,无需下载安装即可使用,它嵌于微信App中,要使用微信小程序你只需要搜索一下微信小程序的名称就好,如近期的"Google的画 ...

  3. 微信小程序入门知识点总结

    微信小程序入门知识点总结 前情介绍 ​ 微信小程序就不多介绍了,我们想要开发微信小程序首先得到微信公众平台 下方的小程序处注册相关账号并登录,接着填写小程序相关资料.在设置处可找到AppID用以开发微 ...

  4. 微信小程序基础架构

    一个微信小程序界面由一个页面描述文件,一个页面逻辑文件,一个样式表文件来进行描述 在主目录中的三个以app开头的文件就是微信小程序的主描述文件 app.js :主逻辑文件,用来注册小程序 app.js ...

  5. 基础总结篇之一:Activity生命周期[转]

    from:http://blog.csdn.net/liuhe688/article/details/6733407   基础总结篇之一:Activity生命周期 子曰:溫故而知新,可以為師矣.< ...

  6. Servlet基础(二) Servlet的生命周期

    Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...

  7. Vue2:实例生命周期、js生命周期

    1.vue2生命周期 每个 Vue 实例在被创建之前都要经过一系列的初始化过程.例如,实例需要配置数据观测(data observer).编译模版.挂载实例到 DOM ,然后在数据变化时更新 DOM ...

  8. 3.微信小程序-B站:wxml和wxss文件

    WXML WXML(WeiXin Markup Language)是微信的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. (小安娜:好像很厉害的样子,那基础组件.事件系统是什么?感觉更厉 ...

  9. 微信小程序-B站:wxml和wxss文件

    WXML WXML(WeiXin Markup Language)是微信的一套标签语言,结合基础组件.事件系统,可以构建出页面的结构. (小安娜:好像很厉害的样子,那基础组件.事件系统是什么?感觉更厉 ...

随机推荐

  1. linux 强制删除yum安装的php7.2

    由于支付宝SDK只支持php7.1,因为需要删除之前安装的7.2版,进行降级.通过yum remove不能完全删除php,必须通过rpm方式卸载.由于php安装模块间有依赖,因此需要按顺序进行卸载.如 ...

  2. Xshell 6安装与使用教程

    随着xshell5出现评估期已过的问题,发现好多人不知道怎么下载免费版的Xshell,在这里我将详细告诉大家如何下载和安装最新的Xshell6远程管理工具. Xshell安装 1.进入xshell英文 ...

  3. JAVA结合testng断言verify(断言失败不中断继续执行)

    原理: 1.自已构造一个断言类,把Assert.assertEquals给try catch住. 2.利用testng的监听类在测试方法运行结束后进行分析. 代码: 断言类: package com. ...

  4. Node2.js

    Node.js简单爬虫的爬取,也是跟着慕课网上抄的,网站有一点点改动,粘上来好复习嘛 var http = require('http') var cheerio = require('cheerio ...

  5. java 虚拟机栈

    与程序计数器一样,Java虚拟机栈也是线程私有的,他的生命周期与线程相同.虚拟机栈描述的是Java执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口 ...

  6. oracle用户间表数据复制迁移

    如system用户要将scott中的emp表倒入其中,按如下方法: 1.登录scott用户 2.给system用户赋予查询emp标的权限: grant select on emp to system; ...

  7. android的事件分发传递机制

    事件的分发与传递最重要的三个处理方法是 dispatchTouchEvent onInterceptTouchEvent onTouchEvent 综合来说事件的 传递是由外层向里层传递,而处理是从里 ...

  8. easyui Tree树形控件的异步加载

    Tree控件 $('#partyOrgTree').tree({ checkbox: false, url: getDataUrl, onClick: function (node) { getDiv ...

  9. C++中的仿函数

    仿函数:实质就是重载了小括号(),通过类,定义一个对象,对象可以被实例化,具有内存可以存储数据,把需要比较的数据事先给到类对象的成员,这样在比较两个值的时候,可以只传入需要被比较的值即可.因为比较的值 ...

  10. 针对Web应用的【攻击模式篇】

    攻击模式:主动攻击.被动攻击. 主动攻击是指攻击者通过直接访问Web应用,把攻击代码传入的攻击模式. 具有代表性的攻击:SQL注入攻击和OS命令注入攻击. 被动攻击是指利用圈套策略执行攻击代码的攻击模 ...