Skip to content

4. Common Apis

evio edited this page Sep 20, 2017 · 1 revision

Miox没有静态属性和方法,我们只介绍他的实例化方法和属性

Note:
以下所有app表示new Miox()后的对象。

app.dictionary

用于自由变量操作。

app.set('a', 1); // 设置值
app.get('a'); // 获取值
app.del('a'); // 删除值

// 当值已设置,通过getter也可以这样获取值
app.a; // 1

// 通过setter也可以这样覆盖值
app.a = 2;

//监听值变化
app.on('a', (newValue, oldValue) => {
    console.log(newValue, oldValue);
});

app.middleware

用户miox注册中间件或者自创中间件。

调用方式:

import middleware from 'miox/build/miox_modules/middleware';
const mdw = new middleware();
mdw.use(async ctx => {});
// ... 更多中间件
// 组合中间件
mdw.__defineProcessHandle__();
// 运行中间件过程
mdw.execute().then(console.log).catch(console.error);

Miox中使用:

app
    .use(fn1)
    .use(fn2)
    .use(fn3, fn4)
    .use(fn5,fn6,[fn7,fn8]);

app.install

用于安装插件。

app.install(app => {
    // app ...
})

app.push

跳转页面,history中必定增加一条记录,同时webview必定新渲染。

@Arguments:

  • url String 跳转地址

@Return <Promise>

app.push('/a/b?a=1#c');

app.replace

页面replace,替换一条记录。

@Arguments:

  • url String 跳转地址

@Return <Promise>

app.replace('/a/b?a=1#c');

app.go

  • 如果参数为数字,表示history.go(n)
  • 如果参数为字符串,那么会从历史记录中搜索之前是否存在此页面,如果存在,计算出步数后使用go(n)跳转;如果不存在就创建,同push行为。

@Arguments:

  • url Number|String 跳转地址或者步数

@Return <Promise>

app.go(-2);
app.go(2);
app.go('/a/b?a=1#c');

app.redirect

  • 在SSR中,在服务端渲染,表示实际的跳转行为302
  • 在web端,作用同push行为。

@Arguments:

  • url String 跳转地址

@Return <Promise>

app.redirect('/a/b?a=1#c');

app.render

渲染一个webview页面,同时带参数渲染。

@Arguments:

  • webview Object|class 页面构造函数或者对象
  • args object|undefined 额外参数

@Return <Promise>

app.render(webview, args);

app.fetch

用于自动适应环境选择的方法

Note:
此方法仅能在SSR模式下使用

@Arguments:

  • client function client端回调
  • server function server端回调

@Return <Promise>

app.fetch(async () => ajax.post('....', { a, b, c }));

app.listen

启动服务监听

app.listen();