【微信小程序】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 ...
随机推荐
- Wgpu图文详解(01)窗口与基本渲染
写在前面 如果对Rust与Wgpu比较关注的同学可能在网络上搜到过@sotrh国外大佬编写的<Learn Wgpu>,以及国内大佬@jinleili的优秀翻译作品<学习 Wgpu&g ...
- Windows文件管理优化-实用电脑软件(一)
RX文件管理器 (稀奇古怪的小软件,我推荐,你点赞!) 日后更新涉及:电脑.维护.清理.小工具.手机.APP.IOS.从WEB.到到UI.从开发,设计:诚意寻找伙伴(文编类.技术类.思想类)共编,共进 ...
- 浏览器的同源策略 jsonp方法解决跨域
// 浏览器的同源性 // 在 浏览器 处理请求时 默认执行的是 同源策略 // 也就是 浏览器 只 允许 同源的项目/请求 之间 获取响应体内容 // ...
- 再谈中断机制(APIC)
中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的.一个中断的起末会经历设备,中断控制器,CPU 三个阶段:设备产生中断信号,中断控制器翻译信号,CPU 来实际处理信号. ...
- C++中 符号的优先级
符号 运算顺序 :: 从左至右 a++ a-- type() type{} a() a[] . -> 从左至右 ! ~ ++a --a +a -a (type) sizeof &a *a ...
- 20 套监控平台统一成 1 套 Flashcat,国泰君安监控选型提效之路
author:宋庆羽-国泰君安期货 运维工作最重要的就是维护系统的稳定性,其中监控是保证系统稳定性很重要的一环.通过监控可以了解系统的运行状态,及时发现问题和系统隐患,有助于一线人员快速解决问题,提高 ...
- rust程序设计(4)关于 trait | impl 相关的概念和疑问
trait是什么? Rust中的trait是一种定义可被多种类型实现的共享行为的方式.它类似于Java或C#中的接口.通过trait,你可以定义一组方法签名(有时包括默认实现),不同的类型可以实现这些 ...
- 燕千云 YQCloud 数智化业务服务管理平台发布1.11版本
2022年3月25日,燕千云 YQCloud 数智化业务服务管理平台发布1.11版本.新增客户服务管理模块.优化IT服务管理功能.增强燕千云与其他平台的集成能力.支持更多的业务服务场景.全面提升企业数 ...
- springboot项目编译时,使用自定义注解类找不到符号
springboot项目编译时,使用自定义注解类找不到符号 Java项目编译时,使用自定义注解类找不到符号Spring-boot项目编辑器:idea问题:编译时找不到符号.项目中用到了自定义注解类.编 ...
- 掌握 Nuxt 3 中的状态管理:实践指南
title: 掌握 Nuxt 3 中的状态管理:实践指南 date: 2024/6/22 updated: 2024/6/22 author: cmdragon excerpt: 摘要:该文指南详述了 ...