# data-view

标识特定元素为视图的DOM骨架。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView" data-view>
    视图内容
</section>
```

**是否必须：**

否。

{% hint style="info" %}
当视图的 DOM 骨架上声明了 `data-view-id` 属性时，View\.js 将自动附加该属性。
{% endhint %}

**属性取值：**

无。


# data-view-id

标识视图的ID。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView">
    视图内容
</section>
```

**是否必须：**

是。

**属性取值：**

任意合法的 DOMString。例如：

```markup
<section data-view-id="myView1">视图内容1</section>
<section data-view-id="my-view-2">视图内容2</section>
```


# data-view-name

标识视图的名称。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="goods-detail_001" data-view-name="goods-detail">
    视图内容
</section>
```

**是否必须：**

否。

**属性取值：**

任意合法的 DOMString。


# data-view-namespace

标识视图隶属的命名空间名称。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView" data-view-namespace="myNamespace">
    视图内容
</section>
```

**是否必须：**

否，默认为：`default` 。

**属性取值：**

任意合法的 DOMString。


# data-view-title

设置视图标题。视图标题将在视图变为活动状态时自动更新为浏览器标题。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="profile" data-view-title="我的">
    视图内容
</section>
```

**是否必须：**

否。

**属性取值：**

任意合法的 DOMString 。


# data-view-default

标识特定视图为默认视图。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView" data-view-default="true">
    视图内容
</section>
```

**是否必须：**

否。

{% hint style="info" %}
如果开发者没有主动声明任何视图为默认视图，View\.js 将自动采取视图容器下的第一个视图为默认视图。
{% endhint %}

**属性取值：**

`true` 。

{% hint style="warning" %}
仅当属性取值为 `true` 时，才能有效设置视图为默认视图。
{% endhint %}


# data-view-directly-accessible

标识视图是否可以直接访问。

**声明位置：**

1. 视图骨架 DOM 元素
2. 视图容器 DOM 元素

例如：

```markup
<!-- 当声明在 视图容器 上时，设置的是所有视图的默认表现（视图没有单独声明该属性时的表现） -->
<div data-view-container data-view-directly-accessible="true" >

    <!-- 当声明在 视图 上时，设置的是单个视图的独自表现 -->
    <section
        data-view-id="myView"
        data-view-default="true"
        data-view-directly-accessible="false">
        视图内容
    </section>
    
</div>
```

**是否必须：**

否。

{% hint style="info" %}
如果视图容器上没有声明该属性，View\.js 会将其自动处理为 `false` 。
{% endhint %}

{% hint style="info" %}
如果视图上没有声明该属性，视图将继承视图容器上设置的默认值。
{% endhint %}

**属性取值：**

`true` - 设置为 “可以直接访问”；`false` - 设置为 “不可以直接访问”。


# data-view-group

标识视图隶属的群组名称。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="goods-detail_001" data-view-group="goods-detail">
    视图内容
</section>
```

**是否必须：**

否。

**属性取值：**

任意合法的 DOMString。

{% hint style="warning" %}
该属性已废弃，请使用 `data-view-name` 。
{% endhint %}


# data-view-fallback

声明视图不能直接访问时，将要回退显示的视图的ID。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView"
    data-view-directly-accessible="false"
    data-view-fallback="profile"
    >
    视图内容
</section>
```

**是否必须：**

否。

**属性取值：**

任意合法的 DOMString。


# data-view-fallback-namespace

声明视图不能直接访问时，将要回退显示的视图所属的命名空间。

**声明位置：**

视图骨架 DOM 元素，例如：

```markup
<section data-view-id="myView"
    data-view-directly-accessible="false"
    data-view-fallback="profile"
    data-view-fallback-namespace="myNamespace"
    >
    视图内容
</section>
```

**是否必须：**

否。

**属性取值：**

任意合法的 DOMString。

{% hint style="info" %}
如果没有声明该属性，View\.js 将自动处理为 `default` 。
{% endhint %}


# data-view-container

标识特定 DOM 元素为视图容器。所有开发者创建的视图 DOM，都应该是视图容器的子元素。

**声明位置：**

视图容器 DOM 元素，例如：

```markup
<body>
    <div data-view-container>
        <section data-view-id="myView" data-view>
            视图内容
        </section>
    </div>
</body>
```

**是否必须：**

否。

{% hint style="info" %}
除非开发者明确声明，否则 View\.js 会自动将 `document.body` 视为视图容器。
{% endhint %}

**属性取值：**

无。


# data-view-auto-init

设置 View\.js 是否在文档加载完毕后自动执行初始化动作。

**声明位置：**

视图容器 DOM 元素，例如：

```markup
<body>
    <div data-view-container data-view-auto-init="false">
        <section data-view-id="myView" data-view>
            视图内容
        </section>
    </div>
</body>
```

**是否必须：**

否。

{% hint style="info" %}
如果视图容器上没有声明该属性，View\.js 会将其自动处理为 `true` 。
{% endhint %}

{% hint style="info" %}
当设置为 “不自动初始化” 时，开发者可以使用 `View.init()` 方法手动初始化。
{% endhint %}

**属性取值：**

`true` - 设置为 “文档加载完毕后自动执行初始化”；`false` - 设置为 “不自动初始化”。


# data-view-rel

声明点击后的跳转目标。

**声明位置：**

任意 DOM 元素。

**是否必须：**

否。

**属性取值：**

1. 目标视图ID
2. 目标视图ID及目标视图命名空间
3. 目标视图及视图选项
4. 视图名称
5. 外部链接

例如：

```markup
<!-- 跳转至 default 命名空间下ID为 profile 的视图 -->
<span data-view-rel="profile">个人中心</span>

<!-- 跳转至 b2c-mall 命名空间下ID为 home-page 的视图 -->
<span data-view-rel="home-page@b2c-mall">积分商城</span>

<!-- 跳转至 default 命名空间下ID为 profile 的视图 -->
<!-- 使用视图选项携带1个参数：showFooter=false -->
<!-- '!' 符号是视图信息与视图选项的分隔符 -->
<span data-view-rel="profile!showFooter=false">个人中心</span>

<!-- 跳转至 default 命名空间下ID为 goods-detail 的视图 -->
<!-- 使用视图选项携带2个参数：id=G01 和 count=2 -->
<span data-view-rel="goods-detail!id=G01&count=2">商品详情</span>


<!-- 跳转至 视图名称 -->
<!-- '~' 符号用于告诉 View.js 后边的内容是 视图名称 -->
<span data-view-rel="~profile">商品详情</span>

<!-- 跳转至 视图名称 -->
<!-- 同样可以使用视图选项传递参数 -->
<span data-view-rel="~goods-detail!id=G01&count=2">商品详情</span>


<!-- 跳转至 相同目录的 page2.html -->
<!-- '@' 符号用于告诉 View.js 后边的内容是外部链接 -->
<span data-view-rel="@page2.html">商品详情</span>

<!-- 跳转至 sub 目录的 sub1.html -->
<span data-view-rel="@sub/page2.html">商品详情</span>

<!-- 跳转至 view-js.com -->
<span data-view-rel="@http://view-js.com">商品详情</span>

<!-- 跳转至 view-js.com -->
<!-- 当跳转目标是 http:// 或 https:// 或 ftp:// 开头时，可以忽略 '@' 符号 -->
<span data-view-rel="http://view-js.com">商品详情</span>

<!-- 打开拨号界面 -->
<span data-view-rel="400666666">400-666-666</span>
```


# data-view-rel-namespace

声明跳转目标视图所隶属的命名空间名称。

**声明位置：**

任意 DOM 元素，需要有 `data-view-rel` 属性。

**是否必须：**

否。

**属性取值：**

任意合法的  DOMString 。

例如：

```markup
<!-- 跳转至 b2c-mall 命名空间下ID为 home-page 的视图 -->
<span data-view-rel="home-page" data-view-rel-namespace="b2c-mall">积分商城</span>
```

{% hint style="info" %}
该属性仅当使用 `data-view-rel` 属性声明的跳转目标是视图时有用。
{% endhint %}

{% hint style="info" %}
虽然该属性可以正常工作，但View\.js 建议开发者在 data-view-rel 中使用 `@` 符号指定视图命名空间，从而使代码看起来更为紧凑。
{% endhint %}


# data-view-rel-disabled

设置 data-view-rel 属性是否被禁用。

**声明位置：**

任意声明了 `data-view-rel` 属性的 DOM 元素。

**是否必须：**

否。

**属性取值：**

`true` - 禁用 `data-view-rel` 属性；`false` - 启用 `data-view-rel` 属性。


# data-view-whr

设置视图容器的渲染宽高比（width height ratio）。当浏览环境为 PC landscape（宽度大于高度）模式时工作。

**声明位置：**

视图容器 DOM 元素，例如：

```markup
<body>
    <div data-view-container data-view-whr="414 / 736">
        <section data-view-id="myView" data-view>
            视图内容
        </section>
    </div>
</body>
```

设置后，当使用 PC设备 在 类横屏模式（窗口宽度大于高度） 下浏览时，View\.js 将页面以 414 \* 736 分辨率（iPhone 8 plus 的分辨率）渲染。此时，视图容器的高度为浏览器窗口的高度，宽度为 `高度 / 736 * 414`，并且水平居中。

有关视图布局的更多信息，点击 [这里](https://doc.view-js.com/main.-shi-tu-bu-ju) 去了解。

**是否必须：**

否。

**属性取值：**

`宽度 / 高度` 。


# data-view-os

View\.js 创建的，反映当前操作系统的指示属性。

**声明位置：**

`html` 标签。

**属性取值：**

`ios` - 当前操作系统为 iOS；`android` - 系统为 android；`wp` - 系统为 Windows Phone；`unknown` - 其它系统。


# data-view-state

View\.js 创建的，反映当前 View\.js 的初始化状态的指示属性。

**声明位置：**

视图容器 DOM 元素。

**属性取值：**

`initing` - View\.js 正在进行初始化；`ready` - View\.js 初始化完成。


# data-active-view-id

View\.js 创建的，反映当前活动视图ID的指示属性。

**声明位置：**

视图容器 DOM 元素。

**属性取值：**

当前处于活动状态的视图的ID。


# data-active-view-namespace

View\.js 创建的，反映当前活动视图命名空间的指示属性。

**声明位置：**

视图容器 DOM 元素。

**属性取值：**

当前处于活动状态的视图的命名空间名称。


