NextPage
描述
Nextpage是原有产品(公司原有基于AngularJS构建的产品)中重构而来的,适用于公司业务流程的一个全局插件.
- 它可以实现在不改变路由的情况下,在模块中添加多级页面,如下图所示,并支持无限嵌套.
- 它可以在各级Nextpage页面中相互传递数据.
- 它会在新创建的页面自动创建一个面包屑breadCrumb以及一些实例方法.
[info] Nextpage 是全局的
这意味着在你所开发的组件中不需要引入任何东西,Nextpage会在每个创建的Vue实例中绑定一个 vm.$nextPage(options)方法

演示
// FooComponent
<script>
// 导入一个组件
import BarComponent from './BarComponent'
export default {
    name:'FooComponent',
    data () {
    },
    methods: {
        createNp () {
            this.$nextPage({
                title: 'Create New Component',
                props: {
                    name: 'HelloWorld!'
                },
                show() {
                },
                beforeClose(nextpageInstance) {
                },
                component: BarComponent,
                cache: true
            })
        }
    }
}
</script>
// BarComponent
<script>
export default {
    name: 'BarComponent',
    props: ['name'],
    methods: {
        close () {
            // 关闭当前页面
            this.closeNextPage(this)
        }
    }
}
</script>
[warning] 注意关闭方法中的this
通过NextPage打开的业务组件内调用
closeNextPage()方法时,必须传递当前实例的引用this,如上面的例子所示
NextPage 属性
| 参数 | 说明 | 类型 | 可选值 | 默认 | 
|---|---|---|---|---|
| title | 打开页面的标题,会出现在面包屑中 | String | - | - | 
| props | 需要向新建页面的组件中传递的数据,和Vue一样,可以传递任何值 | Any | - | - | 
| component | 需要打开的业务组件,参考上面的例子,我们要打开的是BarComponent组件页面 | VueComponent | - | - | 
| cache | 是否缓存当前组件,缓存方式使用的是Vue的Keep-alive实现,因此可以缓存所有页面状态,传递参数时不能设置为false | Boolean | - | - | 
NextPage 方法
| 方法名 | 说明 | 参数 | 
|---|---|---|
| closeNextPage | 在打开的组件页面中使用该方法可以关闭当前组件页面 | this (必须传入当前组件实例的引用) | 
NextPage 钩子函数
| 函数名称 | 说明 | 参数 | 
|---|---|---|
| show | 在打开Nexpage后调用 | - | 
| beforeClose | 在Nexpage关闭前调用 | nextPage实例 |