WX小程序的常用知识点总结 |
您所在的位置:网站首页 › openwrt原生固件 › WX小程序的常用知识点总结 |
一、WX小程序的优势和劣势
1.优势 (1)微信助理,容易推广。在微信中,小程序拥有众多入口,例如附近的小程序、小程序码、分享、发现-小程序等五十多个的入口。这些入口有助于企业更好的获取流量,从而进行转化、变现。 (2)使用便捷。用户在使用小程序时,只需要轻轻点一下就可以使用,更加符合用户对使用方便、快捷的需求,所以小程序的用户数量不断增加。 (3)体验良好,有接近原生app的体验。在微信生态里,小程序在功能和体验上是可以秒杀掉 H5 页面的,H5 页面经常出现卡顿、延时、加载慢、权限不足等原因,而这些问题在小程序里都不会出现。 (4)成本更低,从开发成本到运营推广成本,小程序的花费仅为APP的十分之一,无论是对创业者还是传统商家来说都是一大优势。 2.不足 (1)单个包大小限制为2M,这导致无法开发大型的应用,采用分包最大是20M(这个值一直在变化,以官网为准)。 (2)需要像app一样审核上架,这点相对于H5的发布要麻烦一些。 (3)处处受微信限制。例如不能直接分享到朋友圈,涉及到积分,或者虚拟交易的时候,小程序也是不允许的。 二、WX小程序的项目结构1.pages: (1)wxml: 编写小程序界面结构的地方 (2)wxss: 编写小程序样式的地方 (3)json:编写界面配置的地方 (4)js:编写界面逻辑的地方 2.utils: 编写工具类的地方 3.app.js:创建程序实例的位置 4.app.json: 编写全局配置地方 5.app.wxss: 编写全局样式的地方 6.project.config.json: 项目的配置文件 三、小程序中的js和浏览器以及node中的区别1.浏览器中的js (1)ES (2)DOM (3)BOM 2.node中的js (1)ES (2)NPM (3)Native 3.wx小程序中的js (1)ES (2)小程序框架 (3)小程序API 小程序的执行的入口文件是 app.js 。并且会根据其中 require 的模块顺序决定文件的运行顺序。 四、小程序中的数据渲染与浏览器中有什么不同1.浏览器中渲染时单线程的 2.小程序中的运行环境分为渲染层和逻辑层,WXML和WXSS工作在渲染层,js工作在逻辑层 在页面中展示时通过插值表达式{{ }} 五、简述一下小程序的通讯模型小程序的渲染层和逻辑层分别由2个线程管理: 渲染层的界面使用了WebView 进行渲染; 逻辑层采用JsCore线程运行JS脚本。 一个小程序存在多个界面,所以渲染层存在多个WebView线程,这两个线程的通信会经由微信客户端(下文中也会采用Native来代指微信客户端)做中转,逻辑层发送网络请求也经由Native转发。 六、如何优化小程序的首次加载速度(分包加载) 1.什么是分包加载某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。首次访问小程序的时候会加载主包的内容,只有在访问到分包界面的时候,才会去加载分包的内容 2.为什么要使用分包(1)小程序单包大小限制为2M,使用分包最大可以扩展到20M(构建大型APP的时候) (2)优化首次加载小程序的速度,可以把不需要首次加载的内容放在分包里,可以提升小程序的使用性能(对性能要求比较高的时候) 3.如何使用分包(1)目录结构 (2)配置(只需要在app.json中配置即可) { "pages":[ "pages/index", "pages/logs" ],"subpackages": [ { "root": "packageA", "pages": [ "pages/cat", "pages/dog" ] }, { "root": "packageB", "name": "pack2", "pages": [ "pages/apple", "pages/banana"] } ] }(3)分包的限制 a.分包之间不能相互引用js b.主包不能引用分包的js (4)独立分包 不依赖主包的分包 配置分包的时候加上independent的配置即可声明为独立分包 (5)分包预加载 在路由到某个界面的时候,可以需要加载某个分包的内容,以提升访问这个分包的速度。 在app.json中配置即可 { "pages": ["pages/index"], "subpackages": [ {"root": "important","pages": ["index"]},{"root": "sub1","pages": ["index"],},{"name": "hello","root": "path/to","pages": ["index"]}, {"root": "sub3","pages": ["index"]},{"root": "indep","pages": ["index"],"independent": true}], "preloadRule": { "pages/index": {"network": "all","packages": ["important"]}, "sub1/index": { "packages": ["hello", "sub3"]}, "sub3/index": { "packages": ["path/to"] }, "indep/index": { "packages": ["__APP__"] } } } 七、配置tabbar的方式及注意事项1.配置tabbar(需要注意的是,tabbar的图标不能是线上的地址,需要提前准备好放到项目里,一般情况下,这些静态资源只能放在assets文件夹下) 2.写在根目录的app.json文件中,需要注意list中最少要有两个,最多只能有五个 3.list中的每个对象有四个属性 (1)pagePath:对应页面的路径 (2)text:显示的文字 (3)iconPath:未选中时图标的位置路径 (4)selectedIconPath:选中时图标的位置路径 "tabBar": {"color":"","selectedColor": "#f00","list": [{"pagePath": "pages/index/index","text": "首页","iconPath": "./assets/shouye.png","selectedIconPath": "./assets/shouye1.png"},{"pagePath": "pages/logs/logs","text": "log","iconPath": "./assets/bianji.png","selectedIconPath": "./assets/bianji1.png"},{"pagePath": "pages/home/home","text": "我的","iconPath": "./assets/grzl.png","selectedIconPath": "./assets/grzl1.png"}]} 八、wxml中常用的组件(标签)view标签是我们开发过程中最常用的标签了,这个就相当于Html中的div。 text标签也是我们开发中常用的,这个相当于Html中的span image标签相当于我们Html中的img。 九、wxss相比较css的区别与 CSS 相比,WXSS 扩展的特性有: 1.尺寸单位:rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素 2.样式导入:使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,用;表示语句结束。 例如:要导入的对象 /** common.wxss **/ .small-p {padding:5px; }导入的位置 /** app.wxss **/ @import "common.wxss"; .middle-p {padding:15px; } 内联样式 十、微信小程序中的事件绑定及传参1.事件定义:在小程序中绑定事件可以以bind开头然后跟上事件的类型,如bindtap绑定一个点击事件,对应的值是一个字符串,需要在page构造器中定义同名函数,每次触发事件之后就会执行对应函数的内容 点击事件 另一种写法// pages/my/index.js Page({handleTap(){console.log("执行了点击事件");} })2.阻止事件冒泡:在小程序中除了通过bind之外,还可以通过catch进行事件绑定,通过catch绑定的事件不会触发事件冒泡。 3.事件捕获:事件的触发分为两个阶段,首先是捕获阶段,其次是冒泡阶段。默认情况下事件都是在冒泡阶段触发。如果希望事件可以在捕获阶段触发,可以通过capture-bind进行事件绑定 4.事件传参:在小程序中进行事件传参不能像传统的Web项目中一样,在括号里写参数。在小程序中需要在标签上通过data-方式定义事件所需的参数。 点击事件每个事件回调触发时,都会收到一个事件对象,通过这个对象可以获取路由传递的参数 handleTap(e){ console.log("执行了点击事件");// 通过currentTarget中的dataset属性可以获取时间参数console.log(e.currentTarget.dataset.msg); } 十一、逻辑渲染与列表渲染的方式 1.逻辑渲染WXML 中,使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |