美文网首页Weex开发技巧weex社区
Weex - Vue单页面的生命周期

Weex - Vue单页面的生命周期

作者: KChuck | 来源:发表于2017-12-09 11:16 被阅读185次

(注:在iOS上测试)

先上代码:

<template>
    <div @viewappear="viewappear"  @viewdisappear="viewdisappear">
        <div class="box" @click="clickBox"></div>
        <text class="text">{{name}}</text>
    </div>
</template>
<script>

    import NavBar from '../lbase/NavigationBar.vue';
    import globar from '../../json/global.js';
    Vue.use(globar);
    var navigator = weex.requireModule('navigator');
    export default {

        beforeCreate: function() {

            console.log("beforeCreate")

        },
        created: function() {
            console.log("created");
        },
        beforeMount: function() {
            console.log("beforeMount")

        },
        mounted: function() {
            console.log("mounted")

        },
        beforeUpdate: function() {
            console.log("beforeUpdate");

        },
        updated: function() {
            console.log("updated");

        },
        beforeDestroy: function() {
            console.log("beforeDestroy");

        },
        destroyed: function() {
            console.log("destroyed");

        },

        methods: {

            viewappear () {
                console.log('viewappear')
            },
            viewdisappear () {
                console.log('viewdisappear')

            },
            clickBox(){
                this.name='bbbbbb';
            }, 
        },
        data(){
            return {
                 name:"aaaaaa",
            }
        },
    }
</script>
<style scoped>
    .box {
        border-width: 2px;
        border-style: solid;
        border-color: #BBB;
        width: 250px;
        height: 250px;
        margin-top: 250px;
        margin-left: 250px;
        background-color: #EEE;
    }
    .text{
        margin-top: 40px;
        size: 40px;
        font-weight: bold;
        width: 750px;
        color: #006699;
        text-align: center;
    }

</style>

操作流程

1.从上一个面push到该页面

先执行beforeCreate(页面创建前),然后执行created(页面已经创建,相当于iOS vc的viewDidLoad)。然后执行beforeMount,mounted,将实例挂载到dom上。接下去执行viewappear,相当于iOS里的viewWillAppear。与其对应的是viewdisappear,这2个其实都不属于vue的生命周期的一部分,而是weex SDK扩展出来的,weex官网的通用事件有介绍,https://weex.apache.org/cn/references/common-event.html

QQ20171209-105413@2x.png

2.点击页面上的方框,下面的文字由aaaaaa变成bbbbbb。组件更新了,这个时候执行beforeUpdate,然后是updated。

3.点击返回按钮。

也就是页面即将消失,先执行viewdisappear(相当于iOS里的viewWillDisappear),再是页面被销毁依次执行beforeDestroy和destroyed。

************************** 分割线 **************************

另外

上面的顺序是 A push 到 B,B再pop回A的情况,(B即为文章开始vue代码所绘制的页面)。

如果这时候从B再push到C,再从C返回,依次会执行**viewdisappear,viewappear。因为B页面还在堆栈中,也就不会执行destroyed,这也就是iOS导航控制器的逻辑原理。

************************** 分割线 **************************

打印log如下:

QQ20171209-104238@2x.png

相关文章

  • Weex - Vue单页面的生命周期

    (注:在iOS上测试) 先上代码: 操作流程 1.从上一个面push到该页面 先执行beforeCreate(页面...

  • vue多页应用

    vue如何将单页面改造成多页面应用 vue单页多页的开发环境配置+vue的开发思路

  • weex扩展ios

    native如果使用大片的weex,甚至整个app都是weex的话会及其影响性能,所以在native我们采用了单页...

  • cnode社区

    面试要点:(单页应用重点在vue-router) 单页应用,页面只有一个 APP组件; vue-router实现页...

  • 前端路由与Vue Router

    Vue Router 是Vue.js的官方插件,用来快速实现单页应用 单页应用 SPA(Single Page A...

  • Vue.js 原理简析

    构建用户界面的渐进式框架 核心库 只关注视图层 (实现ViewModel) 复杂单页应用 单文件组件 + Vue ...

  • Vue 单页应用(spa)前端路由实现原理

    一文搞懂单页应用原理Vue项目History模式路由机制 源码分析VueVueRouter Vue 单页应用(sp...

  • 浅析vue-router中name的用法

    我们常用vue.js和vue-router来创建单页应用,vue-router能很方便的管理所有的单页组件。我们在...

  • Day45/100 Vue的生命周期

    写在前面的话 Vue生命周期贯穿Vue的整体思想的理解~灰常重要 (一)Vue生命周期全景图 (二)新建Vue实例...

  • vue 和weex

    一。vue 、 weex 介绍 1、vue.js 介绍 Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架...

网友评论

    本文标题:Weex - Vue单页面的生命周期

    本文链接:https://www.haomeiwen.com/subject/jqyuixtx.html