WX小程序的常用知识点总结

您所在的位置:网站首页 openwrt原生固件 WX小程序的常用知识点总结

WX小程序的常用知识点总结

#WX小程序的常用知识点总结| 来源: 网络整理| 查看: 265

一、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