Cerebral

JavaScript 框架管理器
授权协议 MIT
开发语言 JavaScript HTML/CSS
所属分类 开发工具、 程序调试工具
软件类型 开源软件
地区 不详
投 递 者 姬衡
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Cerebral 是 JavaScript MVC 应用程序状态管理器,提供流行的 JavaScript 框架的声明性状态和副作用管理解决方案,拥有独立的调试器,在 Cerebral 中,应用程序的状态被存储在单个的树模型中,该模型管理着所有服务器端和客户端的状态。

支持的 JavaScript 框架

  • Angular
  • Vue
  • React
  • Inferno
  • Preact

示例

@cerebral/angular Angular 视图 for Cerebral.

安装

npm install @cerebral/angular @angular/core @angular/platform-browser babel-plugin-transform-decorators-legacy

Cerebral Service

Cerebral 服务将 Cerebral 控制器提供给 angular 应用程序:

import { NgModule } from '@angular/core'
import { BrowserModule } from '@angular/platform-browser'

import { provide } from 'cerebral'
import { AppService } from '@cerebral/angular'

import { AppComponent }  from './app.component.ts'
import { SomeAngularService } from './SomeAngularService'

// Create a factory to instantiate Cerebral. It can receive
// dependencies which you can "provide" to Cerebral to be used
// within sequences
export function configureApp(someAngularService : SomeAngularService) {
  return new AppService({
    // We use the "provide" function to an angular service to the sequences
    // of Cerebral
    providers: [
      provide('someAngularService', someAngularService)
    ]
  })
})

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ],
  providers: [
     {
      provide: AppService,
      useFactory: configureApp,
      deps: [SomeAngularService]
    },
  ]
})
export class AppModule {}

connect decorator

连接装饰器连接状态并向组件发出信号:

import {
  Component,
  ChangeDetectionStrategy,
  ChangeDetectorRef
} from '@angular/core'
import { sequences, state } from 'cerebral/tags'
import {
  connect,
  AppService,
  CerebralComponent
} from '@cerebral/angular'

@Component({
  selector: 'app-component',
  template: `
    <div (click)="onClick()">{{foo}}</div>
  `,
  // Change detection needs to be set to "OnPush"
  changeDetection: ChangeDetectionStrategy.OnPush
})
@connect({
  // For AOT to work you will have to use the array version of template
  // tags
  myName: state(['foo']),
  onClick: sequences(['clicked'])
})
export class AppComponent extends CerebralComponent {
  // You have to inject "ChangeDetectionRef" and "ControllerService" and pass
  // them to parent for connect to do its work
  constructor(cdr: ChangeDetectorRef, app: AppService) {
    super(cdr, app)
    app.getSequence('onClick')()
  }
}

 

 相关资料
  • 本文向大家介绍Vue的Flux框架之Vuex状态管理器,包括了Vue的Flux框架之Vuex状态管理器的使用技巧和注意事项,需要的朋友参考一下 学习vue之前,最重要是弄懂两个概念,一是“what”,要理解vuex是什么;二是“why”,要清楚为什么要用vuex。 Vuex是什么? Vuex 类似 React 里面的 Redux 的状态管理器,用来管理Vue的所有组件状态。 为什么使用Vuex?

  • 我正在使用带有Spring启动的OAuth2。我是奥斯的新手。我得到了这个 考虑在运行我的 Spring 启动应用程序时在您的配置异常中定义类型为“org.springframework.security.authentication.AuthenticationManager”的 bean。我在StackOverflow中看到了其他一些问题的答案,但它们并没有满足我的需求。我正在使用 Sprin

  • 您好,我已经将Webdriver manager从4.3.1升级到5.2.1,然后我的代码就不起作用了。 这是代码:WebDriverManager.chromedriver(). config(). setChromeDriverVersion(driverVersion); driverFile=new File(Global.WINDOWS_USER_HOME"\. cache\seleni

  • 本文向大家介绍Spring batch批处理框架,包括了Spring batch批处理框架的使用技巧和注意事项,需要的朋友参考一下 spring batch框架的简介 批处理任务是大多数IT项目的一个重要组成部分,批处理在业务系统中负责处理海量的数据,无须人工干预就能够自动高效的进行复杂的数据分析和处理。批处理会定期读入批量数据,经过相应的业务处理进行归档的业务操作,批处理的特征是自动执行,处理的

  • 是一个通用数据库处理框架(可以包含MSSQL POSTGRESQL,SQLITE EXCEL MYSQL DB2 ORACLE...只要你愿意实现接口就可以).很便捷地进行常用数据库操作(增删改查).其性能是几近纯ADO.NET.对于实体的查询采用emit实 现,如果您还不满意可用此框架的代码生成器直接生成纯ADO.NET SQL形式.其主要特色就是性能和便捷的操作.  

  • 我有一个用于交换片段的框架布局。我使用导航抽屉,每个菜单项都会打开一个片段。所以可以肯定的是,在所有应用程序周期中,屏幕上同时只有一个片段(因此只有一个活动)。下面您可以找到我的片段开始方法 所以当我在androidstudio上检查时,每次我用上述方法替换fragment时,内存使用量都会增加<代码>碎片事务。删除不会释放碎片,而替换也不会释放碎片。所以,过了一段时间,如果我点击每一个菜单项,一

  • 我读了一些帖子(特别是BalusC帖子)并在谷歌上搜索了原因(不深入),但我找不到为什么不应该使用实体bean作为托管bean。原因是什么?(我正在学习“ProJSF和HTML5”,在本书中,实体bean被用作托管bean。)

  • 问题内容: 我必须实现一个管道,并试图找到一种方法,如何在Jenkins管道中发布Robot Framework结果。我发现了有关将Robot Framework插件实现到Pipeline中的多个问题,并且也发现了这个问题,这似乎是解决方案。但是,我尝试了这种方法,结果仍然不见了。 有任何解决方法或功能示例吗? 问题答案: [编辑以反映成功的解决方法] 对问题跟踪器的此评论显示了一种似乎可行的解决