【微信小程序】01 入门
官方开发文档:
https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html
需要去微信公众平台注册开发账号:
mp.weixin.qq.com
然后APPID的位置在这里:
左侧菜单栏【开发】——【开发管理】
卡片栏目项【开发设置】中
微信小程序的目录结构
└─miniprogram-1
│ app.js 小程序的逻辑
│ app.json 当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等
│ app.wxss 作为全局样式,会作用于当前小程序的所有页面,局部页面样式 page.wxss 仅对当前页面生效。
│ project.config.json 项目配置文件,做一些个性化配置,例如界面颜色、编译配置等等
│ sitemap.json 配置小程序及其页面是否允许被微信索引
│
├─pages 里面包含一个个具体的页面
│ ├─index
│ │ index.js 页面逻辑
│ │ index.json 页面配置
│ │ index.wxml 页面结构
│ │ index.wxss 页面样式
│ │
│ └─logs
│ logs.js 页面逻辑
│ logs.json 页面配置
│ logs.wxml 页面结构
│ logs.wxss 页面样式
│
└─utils
util.js 存放公共方法或者公共变量
快速创建页面的办法
直接在page.json里面追加页面路径,工具会自动生成对应文件
{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}
View 标签属性
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| hover-class | string | none | 否 | 指定按下去的样式类。当 hover-class="none" 时,没有点击态效果 |
1.0.0 |
| hover-stop-propagation | boolean | false | 否 | 指定是否阻止本节点的祖先节点出现点击态 | 1.5.0 |
| hover-start-time | number | 50 | 否 | 按住后多久出现点击态,单位毫秒 | 1.0.0 |
| hover-stay-time | number | 400 | 否 | 手指松开后点击态保留时间,单位毫秒 | 1.0.0 |
hover-class测试:
html
<view hover-class="boxHover">view样式测试</view>
css
.boxHover {
background-color: red;
}
可以看到是作为一个class来识别的,在这个元素点击时触发样式效果
原始Hover的效果是扶上去触发
<view hover-class="boxHover" class="box">view样式测试</view>
css
.box:hover {
background-color: blue;
}
hover-stop-propagation 测试
<view class="father" hover-class="a">
这是父元素
<view class="son" hover-class="b">这是子元素</view>
</view>
css
.father {
width: 100px;
height: 100px;
background-color: gainsboro;
}
.a {
background-color: red;
}
.son {
width: 100px;
height: 50px;
background-color: pink;
}
.b {
background-color: yellowgreen;
}
点击子元素会触发A和B两个一起的效果,为了不让父元素触发,就可以设置这个属性:
<view class="father" hover-class="a">
这是父元素
<view class="son" hover-class="b" hover-stop-propagation="true">这是子元素</view>
</view>
这样父节点事件不触发了
<view class="father" hover-class="a">
这是父元素
<view class="son" hover-class="b" hover-stop-propagation="true" hover-start-time="500">这是子元素</view>
</view>
设置延迟时间,毫秒值单位,在事件监听到,开始指定的毫秒值之后开始触发
默认值50
hover-stay-time 测试
这个是设置CSS样式效果的持续时间,默认400
<view class="father" hover-class="a">
这是父元素
<view class="son" hover-class="b" hover-stop-propagation="true" hover-start-time="500" hover-stay-time="3000">这是子元素</view>
</view>
Text 标签属性
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| selectable | boolean | false | 否 | 文本是否可选 (已废弃) | 1.1.0 |
| user-select | boolean | false | 否 | 文本是否可选,该属性会使文本节点显示为 inline-block | 2.12.1 |
| space | string | 否 | 显示连续空格 | 1.4.0 | |
| decode | boolean | false | 否 | 是否解码 | 1.4.0 |
selectable 属性已经弃用了,这里设置了以下发现确实文本还是不能选中
<view>
<text selectable="true">这是一段演示文本</text>
</view>
改用下面这个User-Select
<view>
<text user-select="true">这是一段演示文本</text>
<text user-select="true">这是一段演示文本</text>
<text user-select="true">这是一段演示文本</text>
</view>
space意思是是否显示连续空格,值有几种类型:
一般文档解析是不会展示连续的空格
| 值 | 说明 | 最低版本 |
|---|---|---|
| ensp | 中文字符空格一半大小 | |
| emsp | 中文字符空格大小 | |
| nbsp | 根据字体设置的空格大小 |
<view>
<text user-select="true" space="emsp">这是一段 演 示 文 本</text>
</view>
decode 解码,对特殊字符是否转义的处理
<view>
<text>这是一段 <演示文本</text>
</view> <view>
<text decode>这是一段 <演示文本</text>
</view>
Image 图标标签
https://developers.weixin.qq.com/miniprogram/dev/component/image.html
基础用法:
<view>
<!-- 使用 / 表示从项目根目录作为开始路径 -->
<image src="/images/pig.jpg" />
<!-- 或者从本文件所在目录作为开始路径 -->
<image src="./../../images/pig.jpg" />
</view>
Navigator 页面跳转
https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
|---|---|---|---|---|---|
| target | string | self | 否 | 在哪个目标上发生跳转,默认当前小程序 | 2.0.7 |
| url | string | 否 | 当前小程序内的跳转链接 | 1.0.0 | |
| open-type | string | navigate | 否 | 跳转方式 | 1.0.0 |
| delta | number | 1 | 否 | 当 open-type 为 'navigateBack' 时有效,表示回退的层数 | 1.0.0 |
| app-id | string | 否 | 当target="miniProgram"时有效,要打开的小程序 appId |
2.0.7 | |
| path | string | 否 | 当target="miniProgram"时有效,打开的页面路径,如果为空则打开首页 |
2.0.7 | |
| extra-data | object | 否 | 当target="miniProgram"时有效,需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据。详情 |
2.0.7 | |
| version | string | release | 否 | 当target="miniProgram"时有效,要打开的小程序版本 |
2.0.7 |
| short-link | string | 否 | 当target="miniProgram"时有效,当传递该参数后,可以不传 app-id 和 path。链接可以通过【小程序菜单】->【复制链接】获取。 |
2.18.1 | |
| hover-class | string | navigator-hover | 否 | 指定点击时的样式类,当hover-class="none"时,没有点击态效果 |
1.0.0 |
| hover-stop-propagation | boolean | false | 否 | 指定是否阻止本节点的祖先节点出现点击态 | 1.5.0 |
| hover-start-time | number | 50 | 否 | 按住后多久出现点击态,单位毫秒 | 1.0.0 |
| hover-stay-time | number | 600 | 否 | 手指松开后点击态保留时间,单位毫秒 | 1.0.0 |
| bindsuccess | string | 否 | 当target="miniProgram"时有效,跳转小程序成功 |
2.0.7 | |
| bindfail | string | 否 | 当target="miniProgram"时有效,跳转小程序失败 |
2.0.7 | |
| bindcomplete | string | 否 | 当target="miniProgram"时有效,跳转小程序完成 |
2.0.7 |
<view>
<view>
<navigator url="/pages/pageA/pageA">to PageA 1</navigator>
<navigator url="./../pageA/pageA">to PageA 2</navigator>
<navigator url="/pages/pageB/pageB">to PageB 1</navigator>
<navigator url="./../pageB/pageB">to PageB 2</navigator>
</view>
</view>
目录文件:
└─miniprogram-1
│ app.js
│ app.json
│ app.wxss
│ project.config.json
│ sitemap.json
│
├─images
│ pig.jpg
│
├─pages
│ ├─index
│ │ index.js
│ │ index.json
│ │ index.wxml
│ │ index.wxss
│ │
│ ├─logs
│ │ logs.js
│ │ logs.json
│ │ logs.wxml
│ │ logs.wxss
│ │
│ ├─pageA
│ │ pageA.js
│ │ pageA.json
│ │ pageA.wxml
│ │ pageA.wxss
│ │
│ └─pageB
│ pageB.js
│ pageB.json
│ pageB.wxml
│ pageB.wxss
│
└─utils
util.js
路径是定位到页面的目录下面的同名内容,框架因该是做了些文件读取的处理
不允许访问外部网络资源:
<navigator url="https://www.baidu.com/">to Baidu</navigator>
跳转方式:
| open-type | string | navigate | 否 | 跳转方式 |
值种类:
open-type 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| navigate | 对应 wx.navigateTo 或 wx.navigateToMiniProgram 的功能 | |
| redirect | 对应 wx.redirectTo 的功能 | |
| switchTab | 对应 wx.switchTab 的功能 | |
| reLaunch | 对应 wx.reLaunch 的功能 | 1.1.0 |
| navigateBack | 对应 wx.navigateBack 的功能 | 1.1.0 |
| exit | 退出小程序,target="miniProgram"时生效 |
2.1.0 |
默认是使用Navigator,详细见文档内容
滚动区域:
这是一个横向展示案例:
<scroll-view scroll-x="true">
<view class="out">
<view class="box">1</view>
<view class="box">2</view>
<view class="box">3</view>
<view class="box">4</view>
<view class="box">5</view>
</view>
</scroll-view>
css:
.box {
display: inline-block;
width: 120px;
height: 60px;
background-color: red;
text-align: center;
line-height: 60px;
margin: 10px;
color: white;
font-weight: bolder;
flex : 0 0 100px;
}
.out {
border: 1px solid yellow;
display: flex;
flex-wrap: nowrap;
}
包含在内部的元素需要撑破机型的X轴Y轴限制才可以实现
设置scroll-left初始滑动偏移量:
<scroll-view scroll-x="true" scroll-left="120">
<view class="out">
<view class="box">1</view>
<view class="box">2</view>
<view class="box">3</view>
<view class="box">4</view>
<view class="box">5</view>
</view>
</scroll-view>
设置纵向滑动案例:
html
<scroll-view scroll-y="true" scroll-left="120" class="out">
<view class="box">1</view>
<view class="box">2</view>
<view class="box">3</view>
<view class="box">4</view>
<view class="box">5</view>
</scroll-view>
css
.box {
width: 120px;
height: 60px;
background-color: red;
text-align: center;
line-height: 60px;
margin: 10px;
color: white;
font-weight: bolder;
}
.out {
border: 1px solid yellow;
height: 200px;
}
实际上发现,直接在滑动区域里面加元素就行了
【微信小程序】01 入门的更多相关文章
- 微信小程序开发入门教程
做任何程序开发要首先找到其官方文档,微信小程序目前还在邀请内测阶段,目前官方放出了部分开发文档,经过笔者一天的查看和尝试,感觉文档并不全面,但是通过这些文档已经能够看出其大概面貌了.闲话不多说,我们先 ...
- 微信小程序初使心得【微信小程序快速入门】
摘要: 2016年推出微信小程序,时至今日,历经几个版本的更新,已形成了相对实用和稳定的服务平台.本文简单的介绍了微信小程序的入门用法,今后会继续关注和实践. 2016年推出微信小程序,时至今日,历经 ...
- 原创:从零开始,微信小程序新手入门宝典《一》
为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...
- 利用WordPress REST API 开发微信小程序从入门到放弃
自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...
- 微信小程序开发入门(一)
小程序学习入门--(一) 最近自己学习微信小程序的过程当中自己总结出来的知识点,我会不断地更新和完善! 小程序的开发工具 一台电脑 熟悉HTML.CSS.JS基本语法 开发工具: 微信web开发者工 ...
- 微信小程序开发入门教程(三)---小程序云开发支付功能
支付(shoukuan)功能真的很重要!由于我还没有商户号,以下代码未实际验证 1.服务端 进入云开发,新建云函数pay(应该也可以在开发者工具编写后上传) 编写后端代码index.js这里用到第三方 ...
- 微信小程序开发-入门到熟练(wepy-初级篇)
Title:最近做完了项目,review代码的同时,就想写一篇详细的小程序开发经历,记录自己的项目从0到1的过程 Desc : 小程序从0到1,从小白到完成项目,你需要这样做: step1: 基础知识 ...
- 微信小程序开发入门与实践
基础知识---- MINA 框架 为方便微信小程序开发,微信为小程序提供了 MINA 框架,这套框架集成了大量的原生组件以及 API.通过这套框架,我们可以方便快捷的完成相关的小程序开发工作. MIN ...
- 从零开始:微信小程序新手入门宝典《一》
为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习: 一:微信小程序的特点 张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使 ...
- 微信小程序基础入门
准备 Demo 项目地址 https://github.com/zce/weapp-demo Clone or Download(需准备GIT环境) $ cd path/to/project/root ...
随机推荐
- 基于Vue的二进制时钟组件 -- fx67llBinaryClock
fx67llClock Easy & Good Clock ! npm 组件说明 一个基于Vue的二进制时钟组件,没什么卵用,做着好玩,可以方便您装饰个人主页 使用步骤 npm install ...
- LNMP单机架构
黄金架构LNMP LNMP是网站架构初期最合适的单体架构.因为初创型技术团队对于技术的选型,需要考虑如下因素 在创业初期,研发资源有限,研发人力有限,技术储备有限,需要选择一个易维护.简单的技术架构: ...
- Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
a.Mybatis 动态 sql 可以让我们在 Xml 映射文件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql 的功能. b.Mybatis 提 供 了 9 种 动 态 sql 标 ...
- rust程序设计(4)关于 trait | impl 相关的概念和疑问
trait是什么? Rust中的trait是一种定义可被多种类型实现的共享行为的方式.它类似于Java或C#中的接口.通过trait,你可以定义一组方法签名(有时包括默认实现),不同的类型可以实现这些 ...
- c++ win32 纤程
Win32纤程是一种轻量级的协程机制,它能够在同一个线程中实现多个线程执行的效果,从而提高了程序的并发性和可伸缩性. 在C++中,可以使用Win32 API中的fiber来实现纤程.以下是一个使用纤程 ...
- 《史记 XuYu列传》
前言 甲辰年二月十九,余记挂友人须臾.大醉,作此篇以悼念故友.忆往昔同窗之情,言语无不有经天纬地之能,举手投足间便可斩敌方上将.能文能武,乃当世之奇才,其言语中有大智慧.(文体并不重要) 吃饭时 Xu ...
- tortoisegit 配置ssh登录
习惯使用小乌龟. 服务器:gitblit 客户端:TortoiseGit 2.13.0.1 (C:\Program Files\TortoiseGit\bin) git version 2.36.1. ...
- Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划
为了更好的阅读体验,请点击这里 分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式. 不然可能需要绕几个弯才能想出来. 题目链接 题目大意:给出一个 DAG,每条边有一个 \(b_i, ...
- C#使用RegNotifyChangeKeyValue监听注册表更改的几种方式
养成一个好习惯,调用 Windows API 之前一定要先看文档 RegNotifyChangeKeyValue 函数 (winreg.h) - Win32 apps | Microsoft Lear ...
- Linux查看系统占用
## 查看内存占用 #CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 #内存消耗最多的前10个进程 ps auxw|head ...