如何为微信小程序和前端应用选择最佳框架?
如果你正在微信小程序或前端应用,可以考虑使用一套高效的框架。这套框架不仅能提供比原生小程序更好的体验,还能将应用编译成多种小程序,如微信小程序、支付宝小程序,甚至可以直接在浏览器上运行的前端应用。
为什么选择这套框架?
虽然其他应用框架也能编译成微信小程序和支付宝小程序,但它们的体验目前还无法与这套框架相媲美。这套框架不仅提供了应用的基础,还配备了一套界面组件,者可以直接使用这些组件来提升效率。
如何使用这套框架?
使用这套框架创建应用时,你可以选择使用TypeScript或普通的JavaScript语言。此外,你还可以选择应用的数据管理方法,比如Redux或MobX。至于应用的后端,你可以使用其他系统或框架来创建,比如Node.js、Django或Laravel。
课程内容与学习资源
这套课程并不限制你使用的后端服务。在课程中,我们会基于Node.js准备一套演示用的后端服务接口。虽然是演示接口,但它提供了很多后端服务的思路,比如用户管理、处理微信登录与绑定账户、签发与验证Token等。
创建新项目的步骤
使用这套框架提供的命令行工具,你可以轻松创建一个新的项目。你不需要安装它,直接使用npx执行以下命令:
npx create-app
在创建项目时,系统会询问一些问题。你可以暂时创建一个不使用TypeScript和任何数据管理方法的项目,预处理可以选择使用Sass。创建的项目会用npm或yarn来安装依赖,这个过程可能需要一些时间,特别是如果你选择了Sass作为预处理。
电商应用示例
假设你要一个电商应用,需要一个商店主页。页面可以放在/pages
目录下,每个页面可以放在各自的目录中,比如/pages/shop/index.js
。这样创建的商店主页,页面地址就是/pages/shop/index
。每个页面都是一个类,类里面需要用render
方法返回页面的视图,页面里可以添加一些配置信息,使用生命周期方法,在不同的时候执行指定的事情。
页面结构与组件
一个页面就是一个类,这个类需要继承@/core/Page
,这样类里就会有一些方法,比如设置页面状态(数据)的setState
方法。最后要导出页面里定义的类,上面这个页面的最后用了export default Shop
,这个页面定义的类的名字就是Shop
。
应用入口与配置
应用的入口是项目根目录下的app.js
,在这里可以配置应用,为应用添加标签栏等。在应用里创建了新的页面要在这个入口的pages
属性里注册一下。排在第一位置的页面会作为应用的首页,在应用里添加/pages/shop/index
页面,并且把它设置成应用的首页。
页面视图与组件
页面视图是在render
方法里返回的东西,看起来有点像JSX。视图里需要用到一些组件,你可以使用框架自带的基础组件(View
、Text
、Image
等),也可以自己去定义一些组件,然后在不同的页面或者组件的内部去使用自定义的组件。
样式管理
应用里的样式你可以放在几个地方,每个页面或者组件都可以有自己的样式,在定义页面或组件的时候导入这些样式。或者也可以定义全局样式,比如放在应用入口(app.js
)里导入的样式表里,如果使用了Sass作为预处理,这个样式表默认会是app.scss
,你也可以自己定义这个样式的位置。
编译与运行
基于这套框架微信小程序,先要执行项目里定义的对应的命令,在项目下面执行:
npm run build:weapp
这个命令会把src
目录下创建的页面、样式等编译成微信小程序支持的形式,编译之后会放在dist
目录的下面。命令还会监视文件变化,保存了项目文件以后会自动编译有变化的文件。
微信者工具
然后下载安装微信者工具,导入一个小程序项目,位置就是项目所在的目录。注意填写AppID,虽然可以使用访客模式,但我推荐还是去申请注册一个真正的微信小程序,不然有些功能会有限制。
界面组件库
这套框架还配套了一个界面组件库,它里面定义了一些在应用的时候经常会用到的界面组件,比如表单、布局、列表、标签、导航栏等。先给项目安装一下这个包,执行:
npm install @jd/antui
然后在应用的页面或自定义组件里就可以使用这些组件了,你要先从@jd/antui
里导入需要用的组件。不同的组件都有各自的一些属性与事件,使用它们可以定制组件的样式还有行为。
搜索栏组件示例
下面在之前添加的Shop
页面上,用一下@jd/antui
里的搜索栏组件(SearchBar
)。先要在文件顶部从@jd/antui
里导入需要的组件,然后在组件视图里添加SearchBar
组件。
import { SearchBar } from '@jd/antui';
SearchBar
组件支持value
属性,属性的值表示的是搜索栏里的具体的值。这里我们用了一个state
,state
是页面或组件内部使用的数据。而属性(props
)则是使用组件的时候传递进来的值。
事件处理
onChange
与onSearch
也是组件的两个属性,不过他们跟一般属性有点区别,这些用on
开头的属性都跟事件有关。比如onChange
是变更事件,onSearch
指的是动作按钮的点击事件。这些on
开头的属性的值应该是对应的事件的处理方法。
标签栏定制
一般的应用的顶部都会带着一个标签栏,点击标签项目打开的就是对应的页面。在应用里再去创建两个页面:/pages/cart/index
(购物车)与/pages/me/index
(我的)。别忘了在app.js
里注册应用的页面。
然后打开应用的入口app.js
,在tabBar
属性里面,使用list
属性来定制应用的标签栏。
tabBar: {
color: '#666',
selectedColor: '#000',
backgroundColor: '#fff',
list: [
{
pagePath: '/pages/shop/index',
iconPath: '/assets/tab/shop.png',
selectedIconPath: '/assets/tab/shop-active.png',
text: '商店'
},
{
pagePath: '/pages/cart/index',
iconPath: '/assets/tab/cart.png',
selectedIconPath: '/assets/tab/cart-active.png',
text: '购物袋'
},
{
pagePath: '/pages/me/index',
iconPath: '/assets/tab/me.png',
selectedIconPath: '/assets/tab/me-active.png',
text: '我的'
}
]
}
在list
属性里添加标签项目,每个项目都有页面路径,项目的小图标还有项目上显示的文字。你需要提前准备一些PNG格式的小图标,可以把它们放在/assets/tab
目录的下面,图标有两个版本,普通状态的图标,还有激活状态下的图标,可以使用不同的颜色来区分不同状态的小图标。
前端应用编译
基于这套框架的前端应用,在项目的下面,执行:
npm run build:h5
如果你在项目里用了@jd/antui
,还需要配置一下项目,打开项目的编译配置,修改H5相关的配置。
h5: {
extraPostCSSPlugins: ['autoprefixer'],
...
}
成功运行了编译以后,会创建一个服务,自动在浏览器上打开编译好的前端应用项目。
结语
如果你对基于这套框架微信小程序感兴趣,现在就可以开始学习相关课程了。这套课程能让你快速理解这套框架,提升你的效率。