探索小程序的世界(专栏导读、基础理论)

2023-07-04 12:32:20

一、为什么要学习小程序开发

由于微信自身的强势社交属性,以及其对小程序的战略定位(连接人与服务)的前提下进行了持续的大力支持,截至2021年6月,微信官方宣布已经有超过300万个微信小程序。这个数字在不断增长,因为越来越多的开发者和企业选择在微信平台上开发和发布小程序。

1.1 低门槛

相比于传统的App开发,小程序开发门槛较低。你可以使用HTML、CSS和JavaScript等前端技术来开发小程序,而无需学习复杂的移动开发框架和语言。这使得学习小程序开发更加容易上手。

1.2 市场需求

小程序是近年来兴起的一种应用形式,受到了广大用户的喜爱。许多企业和个人都在寻求开发小程序来满足用户需求,因此学习小程序开发将增加你的就业机会和市场竞争力。

在这里插入图片描述

1.3 创业机会

小程序开发为创业者提供了一个低成本、快速验证创意的平台。你可以通过开发小程序来验证你的商业模式和产品想法,从而降低创业风险。

1.4 技术发展趋势

小程序作为一种新兴的应用形式,具有很大的发展潜力。随着技术的不断进步和用户需求的不断变化,小程序开发领域将会有更多的机会和挑战。学习小程序开发可以让你跟上技术发展的潮流,并为未来的发展做好准备。

二、专栏导读

微信小程序专栏地址点此访问
在这里插入图片描述

2.1 实战系列

2.2 工具系列

2.3 游戏系列

2.4 插件系列

三、基础理论

3.1 微信小程序

简易教程

框架

框架提供了白己的视图层描述语言 WXML和 WXSS,以及基于JavaScript 的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者更加方便的聚焦于数据与逻辑上。

组件

框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发,注意,所有组件与属性都是小写,以连字符-连接。

  • 组件是视图层的基本组成单元。
  • 组件自带一些功能与微信风格的样式。
  • 一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之内。
API

框架提供丰富的微信原生API,可以方便的调起微信提供的能力,如获取用户信息,本地存储,支付功能等。

工具

集成了开发调试、代码逻辑及程序发布等功能的官方开发者工具。

开发者工具

功能介绍
编辑默认为编辑状态显示,下面的编译为手动编译功能,遇常情况下修改文件后保存会刷新界面显示
调试编辑状态的菜单栏与浏览器的调试界面几乎相同,包括控制台、源码、网络等
编译修改代码之后,如果没有设置自动检测制新可以在这里手动重新编译
后台模拟程序运行到后台,进入后台时再次点击会进入前台执行
缓存数据的本地缓存,可以进行清除缓存等操作

项目结构

文件名介绍
utils公共脚本目录
app.js小程序逻辑
app.json全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、tab等
app.wxss小程序公共样式表
pages页面文件组成

3.2 app.json配置

pages

功能
功能设置页面路径
节点“pages”:[]
类型String Array
必填

window

功能
功能设置默认页面的窗口表现
节点backgroundTextStyle、navigationBarBackgroundColor、navigationBarTitleText、navigationBarTextStyle
类型object
必填

tabbar

功能
功能设置底部tab的表现
节点color、selectedcolor、backgroundColor、borderStyle
类型object
必填

3.3 App.js

App0 函数用来注册一个小程序,接受一个 object 参数,其指定小程序的生命周期函数等

onLaunch

描述:生命周期函数,监听小程序初始化
触发时机:当小程序初始化完成时,会触发onLaunch(全局只触发一次)

onShow

描述:生命周期函数,监听小程序显示
触发时机:当小程序启动,或从后台进入前台显示,会触发 onShow

onHide

描述:生命周期函数,监听小程序隐藏
触发时机:当小程序从前台进入后台,会触发 onHide

onError

描述:错误监听函数
触发时机:当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息

注意事项

  • App() 必须在 app;js 中注册,且不能注册多个
  • 不要在定义于 App() 内的函数中调用 getApp(),使用 this 就可以拿到 app 实例
  • 不要在 onLaunch 的时候调用 getCurrentPage(),此时 page 还没有生成
  • 通过 getApp()获取实例之后,不要私自调用生命周期函数

3.4 页面跳转与传参

navigator标签,相当于html中的a标签,默认跳转过去在导航栏中会出现一个返回按钮,如果不用返回,可以添加属性redirect,url的用法和htm中a标签的href一样,用?待参数,用&带多个参数

在这里插入图片描述

跳转的页面的js页面中的onLoad函数的参数options就是传过来的参数了

在这里插入图片描述
在这里插入图片描述

导航元素高亮小技巧

  • hover-class属性的使用
  • 要使普通元素点击的时候有高亮的效果,可以给元素添加cursor:pointer的样式

3.5 小程序JS与普通JS的差异

小程序不是运行在浏览器中,所以没有DOM和BOM对象

  • console.log(window)结果为undifined
  • console.log(document)结果为undifined
  • 没有alert方法

小程序的JS有一些额外的成员

  • App方法=》用于定义应用程序实例对象
  • Page方法=》用于定义页面对象
  • getApp方法=》用来获取全局应用程序对象
  • getCurrentPages方法=》用来获取当前页面的调用栈( 最后一个就是当前页面 )
  • wx对象=》用来提供API的核心库

小程序的JS是支持CommonJS规范的

  • module.exports
  • require(./moduleA)

3.6 界面层的数据绑定

特点

WXML 中的动态数据均来白对应 Page 的 data。也就是说js与页面,js中函数函数的值传递都可以通过data中的定义数据来传值。

使用

数据绑定使用 Mustache语法( 双大括号 ) 将变量包起来

介绍语法
内容<view> {( message )) </view>
组件属性(需要在双引号之内)<view id="item-fid]}"> </view>
控制属性(需要在双引号之内)<view wx:if="[[condition)> </view>
关键字(需要在双引号之内)<checkbox checked="{{false}}"> </checkbox>

运算

可以在{{}}内进行简单的运算

介绍语法
三元运算<view hidden="{{flag ? true : false}}"> Hidden < /view>
算数运算<view> {{a + b}} + {{c}} + d </view>
逻辑判断<view wx:if="{length > 5}}> </view>
字符串运算<view>{{"hello"+ name}}</view>
数据路径运算<view>{{object.key}} {{farray[0]}}</view>
更多推荐

如何获取美团的热门商品和服务

导语美团是中国最大的生活服务平台之一,提供了各种各样的商品和服务,如美食、酒店、旅游、电影、娱乐等。如果你想了解美团的热门商品和服务,你可以使用爬虫技术来获取它们。本文将介绍如何使用Python和BeautifulSoup库来编写一个简单的爬虫程序,以及如何使用爬虫代理来提高爬虫的效率和稳定性。概述爬虫技术是一种通过网

【qiankun乾坤】从0到1搭建微前端

微前端是一种将一个大型单体应用拆分成多个小型应用的架构方式。它可以让不同的团队独立开发部署自己的应用,同时这些应用可以集成到一个统一的底座应用中,对用户来说就是一个完整的应用。qiankun是阿里开源的一个微前端实现框架,可以帮助我们比较容易地实现微前端架构。下面来介绍如何从0到1使用qiankun+vue搭建一个微前

单元测试(JUint)

单元测试概述单元测试就是方法测试。Junit单元测试框架JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5。JUnit优点JUni

设计模式:原型模式

目录代码实现总结原型模式(PrototypePattern)是一种创建型设计模式,它通过复制现有对象来创建新对象,而无需通过实例化类来创建。原型模式允许我们通过复制现有对象的属性和方法来创建新的对象,从而避免了直接创建对象的开销。在原型模式中,有以下几个主要角色:原型(Prototype):定义了复制自身的方法。具体原

如何将 OBJ 模型转换和压缩为 GLTF 以与 AWS IoT TwinMaker 配合使用

推荐:使用NSDT场景编辑器快速搭建3D应用场景概述在这篇博文中,引用了几种文件扩展名和模型格式。在开始之前,最好了解以下内容:OBJ–对象文件,一种标准的3D图像格式,可以通过各种3D图像编辑程序导出和打开。MTL–材料库文件,包含一个或多个材料定义,每个定义都包括OBJ模型中对象的各个材料的颜色、纹理和反射图glT

git安装配置教程

目录git安装配置1.安装git2.git配置3.生成sshkey:4.获取生产的密钥3.gitee或者github添加ssh-key4.git使用5.git使用-本地仓库与远程仓库建立连接第一步:进入项目文件夹,初始化本地仓库第二步:建立远程仓库。建立远程连接的小技巧git安装配置1.安装gitwindows:win

【CSS3】CSS3 2D 转换 - rotate 旋转 ③ ( 使用 transfrom-origin 设置旋转中心点 | 使用 方位词 / 百分比值 / 像素值 设置旋转中心点 )

文章目录一、使用transfrom-origin设置旋转中心点二、代码示例-使用transfrom-origin设置旋转中心点1、代码示例-使用方位词设置旋转中心点2、代码示例-使用百分比设置旋转中心点3、代码示例-使用像素值设置旋转中心点一、使用transfrom-origin设置旋转中心点为div盒子模型设置tra

事件循环(也叫事件环,也叫event loop)--任务队列(等待执行的任务)--渲染三者的关系

关键词:阻塞,主线程,事件环(eventloop)、任务环(任务队列)、单线程、本视频总结:超级复杂的JS底层。事件循环和事件队列的关系。宏任务、微任务和raf回调这3个事件队列的关系。任务队列和执行栈的关系。dom点击事件和js调用函数对执行栈的不同影响。事件循环和dom渲染之家raf回调函数的执行。附带要理解函数调

leetcode做题笔记138. 复制带随机指针的链表

给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示

国产CPU发展情况及信创服务器性能测试对比

国产信创服务器是近些年信创突破的重点,面对技术封锁和卡脖子限制,如何实现真正的芯片自主可控也是业界发力的方向。近期华为鲲鹏9000s系列芯片的发布让大家眼前一亮,似乎面对芯片的技术封锁打了一场漂亮的翻身仗。那么在服务器市场国产CPU发展如何,主流的信创服务器有哪些产品,性能表现如何,本文将简单介绍,并结合信创服务器的性

「语音芯片」常见的OTP芯片故障分析

OTP语音芯片是指一次性可编程语音芯片,语音只能烧写一次,适合应用在不需要修改语音、语音长度短的场合,从放音的长度上可以分为20秒、40秒、80秒、170秒、340秒。语音芯片的特点是单芯片方案、价格便宜,适合批量生产,即便是小数量生产也可以及时拿货,主要应用在玩具、电子琴、电动车、报警器、智能锁、按摩仪等产品上,常见

热文推荐