- $代表vue暴露的实力属性与方法
- @ 代表v-on 添建callback :代表v-bind添加双向绑定
- computed基于依赖缓存和methods则不是
- 当computed需要定制的时候采用watch选项
- data必须是一个函数,否则同类组件将共享状态
- 插槽用来向子组件传递内容
content-type 与spring boot 控制器的值注入关系
content-type = ‘application/x-www-form-urlencoded’ (不支持@RequestBody annotation)
前端传值template string为如下形式1
2
3
4
5
6
7
8
9
10
11
12
13
14var http = new XMLHttpRequest();
var url = 'get_data.php';
var params = 'orem=ipsum&name=binny';
http.open('POST', url, true);
//Send the proper header information along with the request
http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
http.onreadystatechange = function() {//Call a function when the state changes.
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);
    }
}
http.send(params);
var params = ‘orem=ipsum&name=binny’;
content-type = ‘application/json’ (支持@RequestBody annotation)
| 1 | let request = new XMLHttpRequest() | 
组件状态管理
何谓组件和容器
- 一个组件可以理解为UI重用的最小单位,它应该与业务逻辑不相关。 
 可以理解纯组件,它的表现形式只有prop参数决定。 一旦其完成构造,应该是不可变的。
- 一个容器可以理解为UI状态管理的最小单位, 它与业务逻辑息息相关。 
 可以理解管理组件的组件。
- GUI 应用应该由一个个组件像搭积木形成的一个个容器构成 
无状态管理 (MV)
| 1 | updateUI ( model -> UI) // load | 
UI.control.addListener(e-> updateModel())
UI状态维护困难,UI难以复用。
Binding机制view model (MVVM)

view与view model 双向绑定(data-binding):View的变动,自动反映在 ViewModel
- 定义domain 均为property 
- view 与 viewModel 双向绑定 
- view的变动仅反映在view model上(具体表现为property的变化),不需要通知其他view 
- 只有在通过property 达不到的情况下才使用event bus. 
- 双向绑定基于弱引用,Binding对象不会保持有双方的强引用,只有两个对象的弱引用 
 你变我也变,我变你也变
- A单向bind B, 实际上是监听源B 对象添加一个监听器,该监听器强引用A,当B变化时,通知监听者A
故这里需要使用weak Listener, 防止由于data长期不销毁而导致view不销毁。
java fx中一切变化皆表现为property的变化
组件间通信
- 通过相互领域模型的bind 
- event bus 
父子组件通信
- scene graph 上节点 
- event bus 
旁系组件通信
- event bus