标签: lifecycle

立即=真在JSF组件中VS立即=假

我正在阅读Core JavaServer Faces,我正在处理事件处理.它表示如果一个组件的immediate = true(比如一个按钮),当我们点击那个按钮时,进程验证和调用JSF生命周期的应用程序面将会提前完成.这是什么意思?任何机构都可以向我解释在每个阶段中立即=真实会影响到什么吗?我很迷惑.

谢谢.

lifecycle javabeans jsf-2

8
推荐指数
1
解决办法
2万
查看次数

使用onResume()刷新活动

我不能为我的生活弄清楚如何在按下后退按钮后刷新活动.我目前有活动A触发意图转到B,而在行动B,如果你按回我想要回到行动A但让它刷新自己.我可以使用此意图来刷新当前的活动:

Intent refresh = new Intent(this, Favorites.class);
    startActivity(refresh);
    this.finish();
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何正确使用onResume()函数来恢复我的行为A.

lifecycle android back-button onresume android-intent

8
推荐指数
1
解决办法
2万
查看次数

onSaveInstanceState/onPause - 等待状态完全保存,然后才允许进程被终止

我正在开发我的第一款Android应用.它有一个模型,在用户进行更新时持久保存到数据库.

onSaveInsanceState被调用时,我想保存,可以用来加载用户已经从数据库中处理文档的ID.但这只能在文档完全访问数据库后才会发生.在某些情况下,持久化复杂的文档可能需要几秒钟(我希望一旦我完成所有详细的注销,这将加速,并且在实际使用中,用户将分阶段构建复杂的文档,每个文档都是将被保存到数据库中,因此复杂文档不太可能一次性保存.

现在,Android上线程的#1规则是"不要阻止UI线程",所以当然数据库交互发生在一个单独的线程上.但我对Android生命周期的理解是,在许多情况下,调用onSaveInstanceState是因为Android系统想要终止进程.这表明我不能允许这个方法返回,直到数据库线程完成保存文档(实际上我的当前设计,我实际上不知道文档的ID号是什么,直到它被保存到数据库,所以我甚至不能把它放在保存状态的束中).

在这些情况下是否适合阻止等待执行持久性任务的UI线程?当onSaveInstanceState因为进程被杀死而被调用时,应用程序在前台不再可见,因此没有任何界面无法响应.

但是onSaveInstanceState当Activity实例被配置更新破坏时也会调用,当屏幕方向发生变化时会发生这种情况.横向旋转屏幕几秒钟后无法做任何事情是非常不幸的.在这种情况下,进程(以及因此内存空间)仍然存在,因此我不需要确保文档命中数据库,如果我只能在Bundle中存储对它的引用而不是它的id.但我不知道如何区分这两种情况.

这些情况是否有公认的做法?我应该阻止线程安全吗?我可以使用普通的Java线程原语来阻止和等待吗?有什么我可以做的不会阻止线程,但确保在Android关闭进程之前完成持久性任务?

所有这些也适用于onPause,onSaveInstanceState不一定会被称为.

lifecycle multithreading android

8
推荐指数
1
解决办法
2476
查看次数

了解Backbone和Marionette View生命周期

我是这个世界的新手,我需要了解Backbone和Marionette的一些概念.在这里,我试图解释一些我正在学习的概念.对它们进行一些反馈会很棒.

render函数定义了呈现模板的逻辑.完成后,将onRender调用回调.这里我假设渲染的视图没有附加到DOM.它由一个tagName(默认值div)组成,其中包含我附加到它的模板.要将该标记显式插入DOM,我需要将其附加到某处.我错了吗?

一般来说,我会做以下事情.

var view = new MyView();
view.render();
$("container").append(view.$el);?
Run Code Online (Sandbox Code Playgroud)

Marionette使用区域概念扩展了Backbone.show可以在区域上调用该方法以呈现特定视图.

var view = new MyView();
region.show(view);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,该show方法将自己调用该render函数,最后,当视图的内容将被放入DOM中时,将在该视图上调用该函数onShow.好吗?

从Marionette doc开始,还有一个叫做回调的回调onDomRefresh.从我的实验中,我注意到之前调用过此方法onShow.所以,我的假设是视图尚未附加到DOM.但该文件说明如下.

在渲染视图后触发,已经通过Marionette.Region显示在DOM中,并且已经重新渲染.

你能给它一些提示吗?

提前致谢.

javascript lifecycle backbone.js backbone-views marionette

8
推荐指数
1
解决办法
3044
查看次数

反应生命周期动画

我正在尝试根据ReactElement的生命周期找到一种执行动画的方法,在组件刚刚安装时动画很容易,但是在组件卸载之前我会做另一个动画.

我不能真正使用ReactCSSTransitionGroup,因为它不会使用RequestAnimationFrame.

只是为了描述我的情况,我的组件是侧边栏,我可以根据一些用户的输入切换开/关.

var Sidebar = React.createClass({
    componentDidMount: function() {
        var menuUfeWidth = $('.menu-ufe').width();
        $(this.getDOMNode()).transition({x: menuUfeWidth}, Utils.animationDuration * 2, 'snap');
    },
    render: function() {
        return (
            <div className={'leaflet-sidebar left'}>
                <div className={'ufe-content'} />
            </div>
        );
    }
});
Run Code Online (Sandbox Code Playgroud)

我想知道如何在组件卸载之前完成动画.

lifecycle animation unmount reactjs

8
推荐指数
1
解决办法
3795
查看次数

ReactJS:componentDidUpdate和setState的第二个参数有什么区别?

这两个功能有什么区别吗?(除了他们的论点)似乎那些方法有相同的触发器,不是吗?

感谢您的帮助 :)

lifecycle reactjs

8
推荐指数
2
解决办法
1390
查看次数

在加载数据之前触发挂载方法 - VueJS

我正在使用Vue Resource从REST API检索图像集合.请求在created我的Vue组件的钩子中发送.

问题是,我正在尝试访问mounted钩子中检索到的数据,但是没有加载数据.

我在控制台中收到此错误:

[Vue警告]:挂钩时出错:"TypeError:无法读取属性'forEach'未定义"

这是我的组件:

<script>
export default {
  data() {
    return { imgs : '' };
  },
  created() {
    // the full url is declare in my main.js
    this.imgs = this.$resource('acf/v3/pages/4');

    this.imgs.query().then((response) => {
      console.log('success', response);
      this.imgs = response.data.acf.gallery;
    }, (response) => {
      console.log('erreur', response);
    });
  },
  mounted() {
    // get the ref="image" in my dom template
    let imgs = this.$refs.image;

    imgs.forEach((img) => {
      // I do some stuff with imgs …
Run Code Online (Sandbox Code Playgroud)

lifecycle vue.js vue-resource

8
推荐指数
1
解决办法
1万
查看次数

ngOnDestroy 在第一次加载页面时被调用

当我第一次加载页面时,在某些页面上,它在 ngOnDestroy 中显示取消订阅错误,因为我正在取消订阅其中的订阅。

我不确定为什么在组件的初始化时调用 ngOnDestroy 。

在此输入图像描述

在此输入图像描述

这是我第一次加载页面时看到的错误。

我认为这是 angular2-multiselect-dropdown 的一些问题,但在其他一些组件中,它自己的 ngOnDestory 也被调用,并表示未定义取消订阅的订阅。

所以我添加了 if 条件来删除错误消息。 在此输入图像描述

这就是订阅的创建。

在此输入图像描述 在此输入图像描述

实际上我不认为它在定义可观察量方面有任何其他问题。

那么这是 Angular 组件生命周期的问题还是 Angular2-multiselect-dropdown 的问题?

我之前没有看到这个错误,也不知道我做错了什么。任何人都可以有类似的问题或帮助我解决这个问题吗?提前致谢。

lifecycle angular

8
推荐指数
2
解决办法
4378
查看次数

如何在 Svelte 中的组件挂载之前获取数据?

onMount与 SvelteJS 中没有生命周期事件不同beforeMount。那么,我们在挂载之前如何获取页面所依赖的数据呢?onMount获取会产生故障。可以说我可以将依赖 DOM 包装在 if 条件中。但我认为这不是正确的解决方案。与 Sapper 非常相似,有一个preload函数可以在安装之前加载页面相关数据。preloadSvelteJS 中这种(Sapper 的)行为的替代方案是什么?

events lifecycle components mount svelte-3

8
推荐指数
1
解决办法
1万
查看次数

Flutter 的确切生命周期相当于 Android 上的 onResume / onPause 和 iOS 上的 viewWillAppear / viewDidDisappear

我以前见过这个问题,但问题总是功能的子集。我正在寻找完全相同的生命周期事件。我可以说得更具体。

我知道 Flutter 小部件中存在的是

  • onCreate/ viewDidLoad=initState
  • onDestroy/ viewDidUnload=dispose

这些是我想了解的生命周期事件(对于当前可见的 widget/route,而不是整个应用程序):

onResume/viewWillAppear在当前可见的小部件上被触发
  1. 内部导航(在应用程序内导航)

    A。您将路线/小部件推入堆栈

    b. 您导航回路线/小部件(已经位于导航堆栈的背面)

  2. 外部导航(应用程序的后台和前台)

    A。您从后台打开应用程序(路线/小部件是显示给用户的)

    b. 您打开屏幕(电源按钮)并且应用程序已打开

onPause/在当前可见的小部件上viewDidDisappear被触发
  1. 内部导航(在应用程序内导航)

    A。您离开小部件/路线继续前进

    b. 您可以通过关闭小部件/在堆栈中向后浏览来离开该小部件

  2. 外部导航(应用程序的后台和前台)

    A。您将应用程序置于后台(并且路线/小部件是向用户显示的) b.您在应用程序打开的情况下关闭屏幕(电源按钮)

lifecycle android ios flutter

8
推荐指数
1
解决办法
6596
查看次数