低代码中除了分支、循环,还有一个比较重要的概念就是函数。在js中函数是用function关键字进行定义
function add(a,b){ return a+b; } let sum = add(3,2) console.log(sum)
一个函数的构成要素有几部分,add表示函数的名。a和b表示函数的入参,return表示返回值。函数调用的时候通过函数名调用,可以接收返回值并且输出。
微搭中函数的定义和javascript略有不同,函数的定义有几个地方。第一种是在common目录下创建公共函数,也叫模块。
export async function getopenid() { const { OPENID, FROM_OPENID } = await app.utils.getWXContext() let userId = FROM_OPENID || OPENID if(!userId) { const { wedaId } = await app.cloud.getUserInfo() userId = wedaId } console.log('userId:', userId) app.dataset.state.userInfo = { openId: userId } return userId }
模块可以使用export进行导出,既可以导出变量,也可以导出方法。
如果其他模块要使用公共模块的需要使用import语句进行导入
import语句的话由三部分组成,第一部分是结构赋值语句,通过{}来进行结构赋值。第二部分是from语句。第三部分是导入模块的具体存放路径。
模块导入之后就可以通过函数名加()来访问了。
第二种是在handler里创建自定义方法
export default function ({ event, data }) { app.showModal({ title: '提示', content: '这是一个模态弹窗', success(res) { if (res.confirm) { console.log('用户单击确定'); } else if (res.cancel) { console.log('用户单击取消'); } } }); }
第三种就是在生命周期函数里实现具体的逻辑
import {getopenid} from '../common/getopenid' export default { async onPageLoad(query) { //console.log('---------> LifeCycle onPageLoad', query) const { openid } = $app.dataset.state.userInfo let useOpenId = openid if(!useOpenId){ useOpenId = await getopenid() } console.log('useOpenId', useOpenId) const {code, data} = await app.dataSources.yqfktg_d6c4wws.getOrders({ "status": 1, "openId": useOpenId }) console.log('data',data) if(code === 0){ $page.dataset.state.inProgressOrder = data } }, onPageShow() { //console.log('---------> LifeCycle onPageShow') }, onPageReady() { //console.log('---------> LifeCycle onPageReady') }, onPageHide() { //console.log('---------> LifeCycle onPageHide') }, onPageUnload() { //console.log('---------> LifeCycle onPageUnload') }, }
熟练掌握方法的定义及使用也是进行低代码编程的基本功,好些初学者是因为没有基础概念,发现一旦做一些稍微复杂的应用就会无从下手,学习还是需要一点点的积累,略过基础直接进行实操有时候难免操之过急,走不少弯路。