视图直接访问

概述

视图是否可以 直接访问,是指视图处于活动状态时,页面在刷新并装载完成后,呈现的第一个视图,是否即为刷新前的活动视图。
如果是,则说明该视图是可以直接访问的,否则说明该视图是不能直接访问的。
如果一个视图是可以直接访问的,那么这个视图就具备了传播能力:传播后仍然能够直接访问得到。
例如:
可以直接访问 和 不可以直接访问的视图在页面刷新后的表现

设置单个视图

除非明确指定,否则每个视图都默认是『不能』直接访问的 。
开发者可以通过属性 data-view-directly-accessible 指定视图是否可以直接访问,例如:
view.html
1
<!-- 声明视图可以直接访问 -->
2
<section
3
data-view-id="myView"
4
data-view-namespace = "my-namespace"
5
data-view-directly-accessible = "true">
6
7
</section>
Copied!
开发者也可以通过 API 动态设置:
init.js
1
var view = View.ofId("myView");
2
3
/**
4
* 设置视图为 “可以直接访问”
5
*/
6
view.setAsDirectlyAccessible(true);
7
8
/**
9
* 判断视图当前是否可以直接访问
10
*/
11
console.log(view.isDirectlyAccessible()); // -> true
Copied!

设置所有视图

开发者可以通过将 data-view-directly-accessible 属性声明在视图容器的 DOM 节点上,实现 “控制所有视图默认表现” 的目的。例如:
index.html
1
<!-- 设置所有视图默认可以直接访问 -->
2
<body data-view-container
3
data-view-directly-accessible = "true">
4
5
<!-- 设置视图可以直接访问 -->
6
<section
7
data-view-id="myView"
8
data-view-namespace = "my-namespace"
9
data-view-directly-accessible="true">
10
</section>
11
12
<!-- 设置视图不能直接访问 -->
13
<section
14
data-view-id="myView2"
15
data-view-namespace = "my-namespace"
16
data-view-directly-accessible="false">
17
</section>
18
19
<!-- 继承默认设置:因此可以直接访问 -->
20
<section data-view-id="myView3"></section>
21
</body>
Copied!
如果特定视图单独做出了配置,则最终结果以视图配置为准。
以上面的代码为例,视图 myView2 是不能直接访问的,而视图 myView 和视图 myView3 则是可以直接访问的。
与单个视图一样,开发者同样可以使用 API 动态设置所有视图的默认表现:
action.js
1
/**
2
* 设置所有视图默认可以直接访问。
3
*/
4
View.setIsDirectlyAccessible(true);
5
6
7
/**
8
* 判断所有视图默认是否可以直接访问
9
*/
10
console.log(View.isDirectlyAccessible()); // -> true
Copied!
Last modified 2yr ago