使用Taro和Taro UI开发跨平台应用:从小程序到H5的全面指南

如何为微信小程序和前端应用选择最佳框架?

  如果你正在微信小程序或前端应用,可以考虑使用一套高效的框架。这套框架不仅能提供比原生小程序更好的体验,还能将应用编译成多种小程序,如微信小程序、支付宝小程序,甚至可以直接在浏览器上运行的前端应用。

为什么选择这套框架?

  虽然其他应用框架也能编译成微信小程序和支付宝小程序,但它们的体验目前还无法与这套框架相媲美。这套框架不仅提供了应用的基础,还配备了一套界面组件,者可以直接使用这些组件来提升效率。

如何使用这套框架?

  使用这套框架创建应用时,你可以选择使用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。视图里需要用到一些组件,你可以使用框架自带的基础组件(ViewTextImage等),也可以自己去定义一些组件,然后在不同的页面或者组件的内部去使用自定义的组件。

样式管理

  应用里的样式你可以放在几个地方,每个页面或者组件都可以有自己的样式,在定义页面或组件的时候导入这些样式。或者也可以定义全局样式,比如放在应用入口(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属性,属性的值表示的是搜索栏里的具体的值。这里我们用了一个statestate是页面或组件内部使用的数据。而属性(props)则是使用组件的时候传递进来的值。

事件处理

onChangeonSearch也是组件的两个属性,不过他们跟一般属性有点区别,这些用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'],
...
}

  成功运行了编译以后,会创建一个服务,自动在浏览器上打开编译好的前端应用项目。

结语

  如果你对基于这套框架微信小程序感兴趣,现在就可以开始学习相关课程了。这套课程能让你快速理解这套框架,提升你的效率。

© 版权声明
THE END
分享