【小程序开发实战】页面开发

884 阅读7分钟

「这是我参与11月更文挑战的第2天,活动详情查看:2021最后一次更文挑战

前言

环境准备篇,我们正式开始小程序的第一个页面的开发,先来了解微信官方为我们提供了哪些开发资源。

小程序首页

之前介绍过,在app.jsonpages内容的第一项就是小程序的首页,我们可以看到,其实际对应于pages目录下一个名为index的目录。

image.png

这个目录有4个文件,名字都叫index,但后缀名各不相同,包含这样4个文件的一个目录就是小程序的一个页面

这4个文件分别有各自的作用,其中index.js的后缀为.js,也就是Javascript文件,这是一种脚本文件,可以使用Javascript这种编程语言编写任何符合语法的代码逻辑。index.json则是我们之前介绍过的JSON文件,可以存储一些关于页面的配置信息。

而对于index.wxmlindex.wxss这两个文件,则是我们编写页面内容的主要文件,让我们先来打开index.wxml

image.png

这里面密密麻麻写着各种代码,但其满足于一种语法结构,则是我们的网页代码结构——HTML。

HTML简介

HTML又叫做超文本标记语言,是我们浏览的网页背后所对应的编程语言,比如你现在看到的这篇文章内容其实就是通过电脑或手机的浏览器进行打开的。

即使你是用微信打开的,微信也是使用其内置浏览器打开这篇文章的,只是你看不到普通浏览器的那些菜单选项而已。

只要是按照HTML语法编写的代码,都能够通过浏览器进行展示,而HTML之所以叫做超文本标记语言,是因为它可以展示不同于普通文本的内容。普通文本就是我们使用记事本或word文档所写出的内容,而超文本则可以展示图片、音频、视频、直播流等各种超出普通文本的内容。

HTML的语法很简单,就是使用其内置的各种标签进行内容展示,所谓的标签就是一对对尖括号所包含的单词。比如<view></view>这就是一对标签,<button></button>这也是一对标签。

标签简介

不同的标签可以展示不同格式的内容,比如我们的index.wxml中,<image></image>用来展示一张图片,也就是我们在左侧页面看到的用户头像,<text></text>用来展示一行文字,也就是我们在页面中看到的Hello World

而<view></view>则可以用于包裹一系列由其他标签组成的内容块,从而在页面上形成一块一块的展示区域。

标签使用

那么我们应该如何知道都有哪些标签可以使用呢,这就需要阅读微信官方文档来学习各种标签的基本使用了。这里 是小程序内置提供的一系列用来展示各种特定格式内容的标签,你可以按照自己的想法进行使用。

比如我们按照 icon 的文档介绍,在我们的index.wxml中增加一个icon标签来看看效果

image.png

修改效果如下

image.png

以此类推,我们可以按照文档中所列举的各种标签来组成我们的页面

样式编辑

每个标签都有其自带的默认样式,比如我们使用的icon是一个背景为绿色的圆形图标,内容为一个白色的√。

那么如果官方提供的标签不符合我们想要的样子怎么办,这是非常常见的问题。这时候我们可以使用view标签来打造任何属于我们自己的标签样式。

比如我们使用view来做一个橙色的长方形图标,内容为LOGO字样。

image.png

view里面的内容会直接显示,但现在它还没有颜色,我们需要在view标签内声明一个class属性,这可以用来标识这个标签的样式,像下图这样

image.png

接着,我们在index.wxss中为刚刚定义的class属性声明样式内容如下

image.png

这样,我们就将一个通用的view标签改造成一个符合我们期望的带有特殊样式的标签了。

关于.my-logo的声明,是使用一种叫做CSS的语法进行书写的。这种语法常常与HTML配对使用,是专门用于定义HTML标签样式的网页语言。

关于CSS的语法可以通过 CSS 教程 进行学习,如果没有CSS对各种HTML标签进行装饰,那网页内容只会是一些苍白内容的简单展示,所以学习CSS有助于美化我们所看到的内容。

逻辑编写

那么如果只是使用HTML和CSS,我们基本只能让页面展现一成不变的静态内容,那么如何能让网页内容“动”起来呢,这就需要使用Javascript这门脚本语言进行逻辑的编写了。

Javascript简称js,是一门功能强大的编程语言,可以实现诸多复杂的程序功能。但使用其完成一些简单逻辑,编写起来也很容易。

比如,我们想要我们刚才声明的标签内容不是固定的展示LOGO,而是在点击后可以变成小写的logo。那么我们可以在index.js中声明一个变量来存储想要展示的内容

image.png

然后将标签中的内容修改为读取这个变量的值,而不是展示固定的LOGO字样

image.png

这里使用一对双大括号,表示要从index.wxml文件中读取index.js中定义的变量所对应的值,变量要定义在index.js中的data中。

那么,接着我们为我们的标签指定点击后的动作响应如下

image.png

bindtap的意思是为这个标签绑定点击后的响应,其内容为index.js中同名的执行方法

image.png

this.setData()用于更新data中对应变量的值,我们在onLogoClick方法中声明了对于logoContent的修改,这样在我们的标签被点击后则会触发这个逻辑,从而将标签所展示的内容修改为小写的logo

在修改完代码后,我们点击上方的编译,然后点击黄色的标签可以看到效果

image.png

这是一个简单逻辑编写的示例,更多复杂逻辑都可以写在js文件中进行实现。关于Javascript这门编程语言的使用,可以参考 JavaScript 教程 进行学习。

小程序内置功能

另外,除了我们使用js语法进行自定义逻辑编写以外,小程序自身为我们提供了诸多内置功能。我们都可以通过在js文件中通过wx变量进行调用,想要了解具体都有哪些内置功能,可以点击查看 这里

比如我们想要展示一个提示信息,可以在刚才的标签所绑定的点击事件中增加如下代码(修改代码后记得点击上方的编译,以使修改生效)

image.png

这样,当我们点击刚才的黄色LOGO后就会在页面出现下图这样的提示信息

image.png

这样类似的内置功能还有很多,比如拉起手机相册、请求网络接口、跳转页面、刷新页面等等

小结

本篇讲解了一个小程序页面开发所用到的核心部分,包括以下内容:

  • 页面内容
  • 内容样式
  • 页面交互及逻辑
  • 小程序内置功能

掌握这些以后,你已经基本可以开始编写一个完整的小程序页面了,其中关于HTML、CSS和Javascript的知识可能需要花时间进行基本使用的学习。

更多内容讲解敬请关注后续文章,我会带你从零了解开发一款属于自己的小程序所需要的全部知识。