一篇文章带你搞懂微信小程序的开发过程

这篇具有很好参考价值的文章主要介绍了一篇文章带你搞懂微信小程序的开发过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

小程序想必大家应该都不陌生了吧,今天小编带大家一起来学习下微信小程序的开发过程吧。

一、申请微信公众号下载微信开发者工具

这个不一一介绍,网上有教程,申请成功后打开后台,我们找到小程序,下载微信开发者工具,如图:

一篇文章带你搞懂微信小程序的开发过程

这里我们选择普通小程序开发工具,点击微信开发者工具,如图:

一篇文章带你搞懂微信小程序的开发过程

然后选择相应版本的工具,我们选择稳定版,如图:

一篇文章带你搞懂微信小程序的开发过程

大概100多兆,不到十秒即可下载完毕。下载好后按照要求安装微信开发者工具。

二、新建小程序项目

第一次启动会出现一个二维码,我们需要扫描来登录,登录上了之后即可进行开发了,如图:

首先我们在小程序中选中AppID,如图:

一篇文章带你搞懂微信小程序的开发过程

然后我们新建一个项目,对项目的参数进行设置,如图:

一篇文章带你搞懂微信小程序的开发过程

设置好后点击新建,即可打开微信开发者工具,如图:

一篇文章带你搞懂微信小程序的开发过程

可以看到,这跟我们的浏览器有很多相似之处。我们点击头像之后就会显示登陆的时间,其实这就是启动小程序的日志时间,如图:

一篇文章带你搞懂微信小程序的开发过程

三、小程序的结构

我们先来看看小程序的文件结构图,如下:

一篇文章带你搞懂微信小程序的开发过程

可以看出就只有js ,json ,wxml ,wxss这四种后缀的文件,前面的index文件夹是首页,index.js(逻辑),index.wxss(样式),index.wxml(结构);logs文件夹是登陆日志,他的几个文件的用法和index的差不多;app.js(逻辑),app.json(配置),app.wxss(样式)这三个是小程序的配置文件,通过他们来渲染页面,并启动小程序;util.js(逻辑)使用这个文件来加载脚本,使用require引入,最后一个project.config.json是建立项目时的配置文件。

四、小程序的项目开发分工

小程序可以由多人协同开发,我们可以添加多个微信好友,如图:

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

可以绑定15个微信号。还可以添加体验成员,也就是用于测试小程序功能的微信好友,如图:

一篇文章带你搞懂微信小程序的开发过程

也是可以添加15个。

五、小程序初探

1.设置小程序的页面

现在我们来试着写一个自己的小程序,我们都知道创建小程序时有一个配置文件,我们来看下:

一篇文章带你搞懂微信小程序的开发过程

然后我们可以修改小程序的标题名,如图:

一篇文章带你搞懂微信小程序的开发过程

修改窗口标题名Weinxin为其他的文本即可。还可以在第一个字典中设置主页的页面地址和主页的日志。这个时候我们可以把重新设置一个页面来达到我们设置的微信小程序的界面效果,首先我们设置一个微信小程序的页面文件夹,如图:

一篇文章带你搞懂微信小程序的开发过程

我们按照图中的操作步骤来进行操作,然后按下Ctrl+S保存即可;然后我们在demo文件夹的demo.wxml文件中添加前端页面代码,这个文件相当于Html文件,另一个demo.wxss相当于css,我们需要通过添加小程序的组件来进行小程序的内容的编写,如图:

一篇文章带你搞懂微信小程序的开发过程

这里是所有的微信小程序标签。我们来进行简单的小程序界面编写,下面来看下小编写的,如图:

一篇文章带你搞懂微信小程序的开发过程

那么这个是如何完成的了?

2.完成小程序页面的代码

我们需要将刚刚的demo文件夹和初始的index文件在app.json中的位置进行调换,如图:

一篇文章带你搞懂微信小程序的开发过程

把demo放在index前面即可,然后我们编写index的页面代码和样式,如图:

demo.wxml

一篇文章带你搞懂微信小程序的开发过程

demo.wxss

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

可以看到我们在输入框中输入了相关内容,一个非常简单的表单就制作完成了。

注:px和rpx可以互相进行转换,px为物理像素,rpx为逻辑像素。一般设置rpx不用担心兼容问题。

3.选择器

上面我们使用了一个样式表的基础概念,选择器,微信小程序中支持以下几种选择器,如下:

选择器 样例 样例描述
.class .intro 选择所有拥有 class=“intro” 的组件
#id #firstname 选择拥有 id=“firstname” 的组件
element view 选择所有 view 组件
element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
::after view::after 在 view 组件后边插入内容
::before view::before 在 view 组件前边插入内容

4.数据绑定

不过光制作表单还不行,我们还得处理这个表单传递的数据,所以这个时候我们就需要编写Js代码,所以得去demo.js文件中编写代码,如图:

一篇文章带你搞懂微信小程序的开发过程

在data中添加标题,但是此时该数据还无法映射到前端页面中,我们需要在页面文件中编写代码来接收这个值,如图:

一篇文章带你搞懂微信小程序的开发过程

这个就相当于我们jinja2模板引擎中的语法,在微信小程序中我们管他叫数据绑定。

5.列表渲染

除此之外了,还有比如说列表渲染,如下:

demo.wxml

一篇文章带你搞懂微信小程序的开发过程

demo.js

一篇文章带你搞懂微信小程序的开发过程

这样我们就能传递一个数组给前端页面,如图:

一篇文章带你搞懂微信小程序的开发过程

如果我们想遍历这个数组,行不行了?当然是可以的,demo.js内容更保持不变,只需修改demo.wxml的内容即可,如图:

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

可以看到打印出了这个结果。

6.条件渲染

相比于列表渲染,不同的是可以进行判断,如下:

demo.wxml

一篇文章带你搞懂微信小程序的开发过程

demo.js

一篇文章带你搞懂微信小程序的开发过程

这样就可以得到最终的值为2,如图:

一篇文章带你搞懂微信小程序的开发过程

如果我们要一次性判断多个组件,则可以使用一个标签将多个组件包装其阿里,如下:

demo.wxml

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

即可看到会返回第二个条件的值。

7.模板

wxml中的模板可以在不同地方调用使用标签‘’来进行定义,首先建立一个模板,如下:

<template name="staffName">  <view>    FirstName: {{firstName}}, LastName: {{lastName}}  </view></template>

然后使用 is 属性,声明需要的使用的模板,如下:

<template is="staffName" data="{{...staffA}}"></template><template is="staffName" data="{{...staffB}}"></template><template is="staffName" data="{{...staffC}}"></template>

然后将模板所需要的 data 传入,在demo.js的data字典中添加几个键值对,如下:

staffA: {firstName: 'Hulk', lastName: 'Hu'},staffB: {firstName: 'Shang', lastName: 'You'},staffC: {firstName: 'Gideon', lastName: 'Lin'}

现在我们就可以在屏幕上看到这些模板中的实例了,如图:

一篇文章带你搞懂微信小程序的开发过程

8.引用

wxml提供两种文件的引用方式,import和include,下面来具体看看。

1).import

该引用方式只能使用导入的文件,对于下一级的导入则无法调用,比如c导入b,b导入a,c无法调用a,我们来看下,如图:

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

要想生效必须将文件放在同一目录下,然后我们来看下效果,如图:

一篇文章带你搞懂微信小程序的开发过程

2).include

可以将目标文件除了 <template/> <wxs/> 外的整个代码引入,相当于是拷贝到 include 位置,如下:

一篇文章带你搞懂微信小程序的开发过程

一篇文章带你搞懂微信小程序的开发过程

这样我们即可将网页文件中的内容通通导入到另一个页面中去,如图:

一篇文章带你搞懂微信小程序的开发过程

3).样式的导入

如果我们想共用一个样式文件中的样式,则可以使用import,首先我们新建一个样式文件,然后写入代码,如图:

一篇文章带你搞懂微信小程序的开发过程

然后导入到指定的wxss文件中去,如图:

一篇文章带你搞懂微信小程序的开发过程

最后我们就可以看到背景颜色变了,如图:

一篇文章带你搞懂微信小程序的开发过程

如果我们有时候需要统一样式的话,直接设置全局样式即可,如图:

一篇文章带你搞懂微信小程序的开发过程

9.小程序的专属脚本语言

小程序既然有和html和css一样的东西,肯定有也有和JavaScript一样的东西,他就是weixin script,而且他和JavaScript不一样,不过他可以如同JavaScript一样可在特定标签中定义脚本语言或者专门写一个脚本文件然后引入。那么现在大家就来和我一起看看是怎么回事吧。

1).编写方法

我们可以把脚本文件写入到标签中,也可以把它写入到.wxs文件中去。如下:

1)).直接写到标签中

直接在wxml文件中定义一个wxs标签,然后将内容写进去,如下:

<wxs module="index">var bb= function (val) {return val}module.exports = {key:bb}</wxs><view> {{index.key(12)}} </view>
2)).写到文件中然后导入到wxml中

先创建一个wxs文件,内容如下:

var bb= function (val) {  return val  }  module.exports = {  key:bb  }  module.exports.msg = "hello";然后再导入并且使用,如下:<wxs src="demo.wxs" module="demo"/><view>{{demo.msg}}</view><view>{{demo.key("world")}}</view>
3)).引用wxs文件

我们可以使用函数require来引用wxs模块,首先新建一个wxs文件,内容如下:

var d= require("demo.wxs");console.log(d.msg);console.log(d.key(111))

然后再去wxml文件中引用这个wxs文件,如下:

<wxs src="gg.wxs" module="gg" />

大家可以看到最终结果,如图:

一篇文章带你搞懂微信小程序的开发过程

2).变量

既然是脚本语言当然就有变量了,刚才我们已经使用过了,一般声明变量是使用var关键字,当然你也可以赋值,如果不赋值,则为undefined,也就是空值。

3).保留关键字
delete  删除void    typeof  类型判断null    空指针undefined 没有定义NaN      空Infinity 无穷大var       变量定义if        如果else      否则true      真false     假require   引入wxs文件this      对象本身function  函数定义arguments  函数参数本身return    返回for       遍历while     当型循环do        当型循环的结束标识break     终止continue  跳过并进入下一个循环switch    选择判断case      判断的情况default   默认

以上的保留关键字的用法和JavaScript中的保留关键字是一样的。

4).数据类型

和JavaScript的是一样的数据类型,具体用法这里不做讲述,看看数据类型,如下:

number :数值string :字符串boolean:布尔值object:对象function:函数array : 数组date:日期regexp:正则
5).其他类库

微信小程序也内置很多类库来完善小程序的各项功能,比如,console,math,json,date等,和JavaScript用法一致。

10.配置文件

我们可以通过更改配置文件来达到修改页面效果的目的,一般可分为全局配置,页面配置和sitemap配置,下面我们来看看吧.

1).全局配置

他是配置小程序全局属性的一个配置文件,拥有众多的配置项,在app.json文件中设置才能生效,如图:

一篇文章带你搞懂微信小程序的开发过程

常见的配置选项见下图:

属性 类型 必填 描述 最低版本
entryPagePath string 小程序默认启动首页
pages string[] 页面路径列表
window Object 全局的默认窗口表现
tabBar Object 底部 tab 栏的表现
networkTimeout Object 网络超时时间
debug boolean 是否开启 debug 模式,默认关闭
functionalPages boolean 是否启用插件功能页,默认关闭 2.1.0
subpackages Object[] 分包结构配置 1.7.3
workers string Worker 代码放置的目录 1.9.90
requiredBackgroundModes string[] 需要在后台使用的能力,如「音乐播放」
plugins Object 使用到的插件 1.9.6
preloadRule Object 分包预下载规则 2.3.0
resizable boolean PC 小程序是否支持用户任意改变窗口大小(包括最大化窗口);iPad 小程序是否支持屏幕旋转。默认关闭 2.3.0
usingComponents Object 全局自定义组件配置 开发者工具 1.02.1810190
permission Object 小程序接口权限相关设置 微信客户端 7.0.0
sitemapLocation string 指明 sitemap.json 的位置
style string 指定使用升级后的weui样式 2.8.0
useExtendedLib Object 指定需要引用的扩展库 2.2.1
entranceDeclare Object 微信消息用小程序打开 微信客户端7.0.9
darkmode boolean 小程序支持 DarkMode 2.11.0
themeLocation string 指明 theme.json 的位置,darkmode为true为必填 开发者工具 1.03.2004271
lazyCodeLoading string 配置自定义组件代码按需注入 2.11.1
singlePage Object 单页模式相关配置 2.12.0

下面来看下有关实例,如下:

 "window":{    "backgroundTextStyle":"light",    "navigationBarBackgroundColor": "#fff",    "navigationBarTitleText": "Weixin",    "navigationBarTextStyle":"black"  }
2).页面配置

可针对每个页面进行针对性的配置,相当于页面的局部配置,优先级高于全局配置,一般就是在小程序的json文件中,配置项如下:

属性 类型 默认值 描述 最低版本
navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如 #000000
navigationBarTextStyle string white 导航栏标题颜色,仅支持 black / white
navigationBarTitleText string 导航栏标题文字内容
navigationStyle string default 导航栏样式,仅支持以下值:default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮 微信客户端 7.0.0
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的样式,仅支持 dark / light
backgroundColorTop string #ffffff 顶部窗口的背景色,仅 iOS 支持 微信客户端 6.5.16
backgroundColorBottom string #ffffff 底部窗口的背景色,仅 iOS 支持 微信客户端 6.5.16
enablePullDownRefresh boolean false 是否开启当前页面下拉刷新。详见 [Page.onPullDownRefresh]
onReachBottomDistance number 50 页面上拉触底事件触发时距页面底部距离,单位为px。详见 [Page.onReachBottom])
pageOrientation string portrait 屏幕旋转设置,支持 auto/ portrait / landscape 详见 [响应显示区域变]) 2.4.0 (auto) / 2.5.0 (landscape)
disableScroll boolean false 设置为 true 则页面整体不能上下滚动。只在页面配置中有效,无法在 app.json中设置
usingComponents Object 页面自定义组件配置 1.6.3
style string default 启用新版的组件样式 2.10.2
singlePage Object 单页模式相关配置 2.12.0

如果我们想添加一个底部栏,方法很简单,如下:

一篇文章带你搞懂微信小程序的开发过程

3).sitemap配置

微信小程序中内置了搜索功能,可以通过sitemap.json来配置是否允许被微信索引,一般里面存放的是一个嵌套的字典,主要的配置项只有rules一个,其他的则是rules的值,rules的内容有如下几种:

属性 类型 必填 默认值 取值 取值说明
action string “allow” “allow”、“disallow” 命中该规则的页面是否能被索引
page string “*”、页面的路径 * 表示所有页面,不能作为通配符使用
params string[] [] 当 page 字段指定的页面在被本规则匹配时可能使用的页面参数名称的列表(不含参数值)
matching string “inclusive” 参考 matching 取值说明 当 page 字段指定的页面在被本规则匹配时,此参数说明 params 匹配方式
priority Number 优先级,值越大则规则越早被匹配,否则默认从上到下匹配

其中matching的字段范围有:

matching 取值说明

说明
exact 当小程序页面的参数列表等于 params 时,规则命中
inclusive 当小程序页面的参数列表包含 params 时,规则命中
exclusive 当小程序页面的参数列表与 params 交集为空时,规则命中
partial 当小程序页面的参数列表与 params 交集不为空时,规则命中

下面我们来看一个配置实例,如下:

{  "rules":[{    "action": "allow",    "page": "path/to/page",    "params": ["a", "b"],    "matching": "exact"  }, 
{    "action": "disallow",    "page": "path/to/page"  }]}
  • path/to/page?a=1&b=2 => 优先索引
  • path/to/page => 不被索引
  • path/to/page?a=1 => 不被索引
  • path/to/page?a=1&b=2&c=3 => 不被索引
  • 其他页面都会被索引

注:没有 sitemap.json 则默认所有页面都能被索引

注:{“action”: “allow”, “page”: “*”} 是优先级最低的默认规则,未显式指明 “disallow” 的都默认被索引。

11.事件绑定

同JavaScript一样,微信小程序同样会有用户操作事件,我们来看看应该如何使用吧。首先我们需要给组件绑定一个事件,如下:

一篇文章带你搞懂微信小程序的开发过程

这里我们通过点击得到了该组件的所有信息。这里我们刚刚用到的是组件的绑定事件,其实还有页面的绑定事件,如下:

onPullDownRefresh:function(){  console.log('用户下拉到底')},onReachBottom:function(){  console.log('用户上拉到底')},onPageScroll:function(options){  console.log('用户滚动页面')  console.log(options.scrollTop)},

当然,微信小程序中也有如JavaScript中的浏览器的冒泡或者捕获问题,这个需要大家去自行学习,说明文档里也很全面。

六、总结

小程序就目前来说市场还是想当火爆的,所以学好它很有必要。文章来源地址https://www.toymoban.com/news/detail-493168.html

到了这里,关于一篇文章带你搞懂微信小程序的开发过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 颠覆世界的“数字孪生”到底是什么?这篇文章带你搞懂全部内涵!

    在春节很火的电影《流浪地球2》中,已经去世的小女孩图丫丫,被她的父亲重新将其个人的信息模型导入最强大的计算机而“复活”了。屏幕中的丫丫就是一个数字孪生体。我们可以看到她的一颦一笑,听到她跟你的对话,看到她做出反应。这就是数字孪生的另一特色,数字

    2024年02月01日
    浏览(87)
  • 一篇文章带你搞懂spring6的概念、spring入门与容器IoC详解(尚硅谷笔记)

    Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spring 框架

    2023年04月16日
    浏览(39)
  • 一篇文章让你搞懂内存函数

    库函数memcmp介绍 函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。 这个函数在遇到 ‘\\0’ 的时候并不会停下来。 如果source和destination有任何的重叠,复制的结果都是未定义的。 库函数memcmp的代码形式 看代码 memcmp将arr1中的内容拷贝到arr2中,总共

    2024年02月17日
    浏览(45)
  • 一篇文章让你搞懂自定义类型-----结构体

    结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量 例如描述一个学生 在声明结构的时候,可以不完全的声明 比如 上面的两个结构在声明的时候省略掉了结构体标签(tag) 那么问题来了 警告: 编译器会把上面的两个声明当成完全不同的两个

    2024年02月16日
    浏览(52)
  • 一篇文章让你搞懂TypeScript中的typeof()、keyof()是什么意思

    知识专栏 专栏链接 TypeScript知识专栏 https://blog.csdn.net/xsl_hr/category_12030346.html?spm=1001.2014.3001.5482 有关TypeScript的相关知识可以前往TypeScript知识专栏查看复习!! 最近在 前端的深入学习过程 中,接触了与 网络请求 相关的内容,于是计划用三个专栏( HTTP 、 Axios 、 Ajax )和零碎

    2023年04月21日
    浏览(60)
  • 【运维知识高级篇】一篇文章带你搞懂Git!(Git安装+全局配置+Git初始化代码仓库+Git四大区域+Git四种状态+Git常用命令+Git分支+Git测试代码回滚)

    版本流程控制系统(version control system)是一种记录一个或若干个文件内容变化,以便将来查阅特定版本内容情况的系统,它会记录文件的所有历史变化,我们可以随时恢复到任何一个历史状态,同时支持多人协作开发。 目录 常见的版本管理工具 Git安装与全局配置 Git初始化

    2024年02月02日
    浏览(63)
  • 【操作系统】一篇文章带你快速搞懂用户态和内核态

    目录 一、指令划分 二、特权级别 三、操作系统需要两种CPU状态 四、CPU状态之间的转换 4.1 CPU状态转换的途径 4.2 CPU状态转化流程 4.3 什么情况会导致用户态到内核态切换 通常来说,以下三种情况会导致用户态到内核态的切换 1、系统调用 2、异常 3、外围设备的中断 五、为什

    2024年02月05日
    浏览(48)
  • 【Spring框架】一篇文章带你彻底搞懂Spring解决循环依赖的底层原理

    目录 一、前言 二、什么是循环依赖 三、Spring Bean 的循环依赖问题 3.1 Bean 的创建步骤 3.2 为什么 Spring Bean 会产生循环依赖问题? 3.3 什么情况下循环依赖可以被处理? 四、Spring 如何解决循环依赖问题? 4.0 什么是三级缓存 4.1 简单的循环依赖(没有AOP) 4.1.0 创建Bean的前期流

    2024年04月17日
    浏览(58)
  • 《C语言初阶篇》循环语句还没搞懂?这篇文章带你轻松学会循环语句!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,又是新的一天开始了,今天给大家带来的循环语句的全面讲解!    ⛳️ 历时一天终于给肝出来了,本文详细讲解了wh

    2024年02月15日
    浏览(48)
  • 数据结构与算法之美学习笔记:41 | 动态规划理论:一篇文章带你彻底搞懂最优子结构、无后效性和重复子问题

    本节课程思维导图: 今天,我主要讲动态规划的一些理论知识。学完这节内容,可以帮你解决这样几个问题:什么样的问题可以用动态规划解决?解决动态规划问题的一般思考过程是什么样的?贪心、分治、回溯、动态规划这四种算法思想又有什么区别和联系? 什么样的问

    2024年02月02日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包