专业 靠谱 的软件研发伙伴

您的位置:首页 > 新闻动态 > 微信小程序开发(微信小程序与普通网页开发的区别和联系)

发布日期:2020-01-26

微信小程序开发(微信小程序与普通网页开发的区别和联系)


1. 小程序与普通网页开发的区别

(1)开发语言

小程序的主要开发语言是 JavaScript 小程序的开发同普通的网页开发相比有很大的相似性

(2)逻辑层和渲染层

​网页开发渲染线程和脚本线程是互斥的(长时间的脚本运行可能会导致页面失去响应)
说明:网页开发者可以使用到各种浏览器暴露出来的 DOM API,进行 DOM 选中和操作。 小程序的逻辑层和渲染层是分开的,分别运行在不同的线程中
说明:小程序的逻辑层运行在 JSCore 中,并没有一个完整浏览器对象,因而缺少相关的DOM API和BOM API。这一区别导致了前端开发非常熟悉的一些库,例如 jQuery、 Zepto 等,在小程序中是无法运行的。同时 JSCore 的环境同 NodeJS 环境也是不尽相同,所以一些 NPM 的包在小程序中也是无法运行的。

(3)开发者面对的运行环境

网页开发者需要面对的环境是各式各样的浏览器
说明:PC 端需要面对 IE、Chrome、QQ浏览器等;在移动端需要面对Safari、Chrome以及 iOS、Android 系统中的各式 WebView 小程序开发过程中需要面对的是两大操作系统 iOS 和 Android 的微信客户端,以及用于辅助开发的小程序开发者工具

(4)​开发准备工作及流程

网页开发者在开发网页的时候,只需要使用到浏览器,并且搭配上一些辅助工具或者编辑器即可 小程序的开发需要经过申请小程序帐号、安装小程序开发者工具、配置项目等等过程方可完成。
说明:
a. 申请小程序帐号并获取AppID:进入小程序注册页 进行注册就可以拥有自己的小程序帐号(在这个小程序管理平台,你可以管理你的小程序的权限,查看数据报表,发布小程序等操作)。登录 小程序后台 ,我们可以在菜单 “设置”-“开发设置” 看到小程序的 AppID 了,注意这里要区别于服务号或订阅号的 AppID (小程序的 AppID 相当于小程序平台的一个身份证,后续你会在很多地方要用到 AppID)。
b. 安装小程序开发者工具并用微信扫码登录:申请小程序帐号后,我们需要安装小程序开发者工具来开发小程序。前往 开发者工具下载页面 ,根据自己的操作系统下载对应的安装包进行安装,之后打开小程序开发者工具,用微信扫码登录开发者工具,准备开发。 2. 小程序与普通网页开发的联系(代码构成)

备注:网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。同样道理,在小程序中也有同样的角色,其中 WXML 充当的就是类似 HTML 的角色,但比HTML更简单,主要体现在便签的简化和规范上;WXSS 充当的就是类似 CSS 的角色,但是对 CSS 进行了修改和拓展;JS逻辑交互只使用到了JavaScript的核心部分。

2.1 .json 后缀的 JSON 配置文件(JSON 配置) 当前小程序全局配置 app.json 小程序开发者工具配置 project.config.json 小程序局部页面配置 page.json

说明:JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色。
注意:
a. JSON文件都是被包裹在一个大括号中 {},通过key-value的方式来表达数据。JSON的Key必须包裹在一个双引号中。忘了给 Key 值加双引号或者是把双引号写成单引号是常见错误。
b. JSON的值只能是以下几种数据格式(数字、字符串、Bool值、数组、对象、Null),其他任何格式都会触发报错,例如 JavaScript 中的 undefined。
c. JSON 文件中无法使用注释,试图添加注释将会引发报错。

2.2 .wxml 后缀的 WXML 模板文件(WXML 模板)

小程序开发中的WXML 充当的就是类似网页编程中HTML 的角色。和 HTML 非常相似,WXML 由标签、属性等等构成。但是也有很多不一样的地方:
(1)标签名字有点不一样

网页HTML经常会用到的标签是 div, p, span(开发者在写一个页面的时候可以根据这些基础的标签组合出不一样的组件,例如日历、弹窗等等)
说明:既然大家都需要这些组件,为什么我们不能把这些常用的组件包装起来,大大提高我们的开发效率。 小程序WXML 用的标签是 view, button, text 等等(这些标签就是小程序给开发者包装好的基本能力,我们还提供了地图、视频、音频等等组件能力)

(2)多了一些 wx:if 这样的属性以及 {{ }} 这样的表达式

在网页的一般开发流程中,我们通常会通过 JS 操作 DOM (对应 HTML 的描述产生的树),以引起界面的一些变化响应用户的行为。
说明:当项目越来越大的时候,你的代码会充斥着非常多的界面交互逻辑和程序的各种状态变量,显然这不是一个很好的开发模式,因此就有了 MVVM 的开发模式(例如 React, Vue),提倡把渲染和逻辑分离。简单来说就是不要再让 JS 直接操控 DOM,JS 只需要管理状态即可,然后再通过一种模板语法来描述状态和界面结构的关系即可。 小程序的框架就是用到了这个思路。通过 {{ }} 的语法把一个变量绑定到界面上,我们称为数据绑定。仅仅通过数据绑定还不够完整的描述状态和界面的关系,还需要 if/else, for等控制能力,在小程序里边,这些控制能力都用 wx: 开头的属性来表达。 2.3 .wxss 后缀的 WXSS 样式文件(WXSS 样式)

WXSS 具有 CSS 大部分的特性,小程序在 WXSS 也做了一些扩充和修改:
(1) 新增了尺寸单位 rpx( rpx可以根据屏幕宽度进行自适应)

在写 CSS 样式时,开发者需要考虑到手机设备的屏幕会有不同的宽度和设备像素比,采用一些技巧来换算一些像素单位 WXSS 在底层支持新的尺寸单位 rpx ,开发者可以免去换算的烦恼,只要交给小程序底层来换算(换算采用的浮点数运算,所以运算结果会和预期结果有一点点偏差)

建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
(2)提供了全局的样式和局部样式(类似 app.json和page.json 的概念)

定义在 app.wxss 中的样式为全局样式,作用于当前小程序所有页面 在 page 的 wxss 文件中定义的样式page.wxss为局部页面样式仅对当前页面生效,并会覆盖 app.wxss 中相同的选择器

(3)WXSS 仅支持部分 CSS 选择器

小程序开发

WXSS目前支持的选择器.png
WXSS补充说明参考:微信小程序开发(框架)中的第2.2节WXSS。

2.4 .js 后缀的 JS 脚本逻辑文件(JS 逻辑交互)

说明:一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击、获取用户的位置等等。在小程序里边,我们就通过编写 JS 脚本文件来相应处理用户的操作。

响应用户的操作-事件 在 JS 中调用小程序提供的丰富的 API,利用这些 API 可以很方便的调起微信提供的能力,例如获取用户信息、本地存储、微信支付等

拓展-目录结构:

小程序开发

目录结构.png

小程序开发

如开发目录结构.png

我们是正规实体技术开发公司,拥有专业的小程序解决方案,价格实惠,专业可靠。我们以客户需求为导向,定制商业微信小程序。以下是我们技术经理微信,可以添加进行咨询:


推荐阅读: