Vaadin学习笔记——Page、UI和View在用法上的区别

前言

在Vaadin技术框架中会出现三种不同的类,用于架构Web应用。它们分别是:Page、UI、View。本文将对这三者从使用角度进行比较,试图分析三者的异同。本文完全原创,我可不是在强调版权,我只是想告诉读者,下面的内容都是我自己的粗浅理解,欢迎各位读者指正、探讨。

本文基于Vaadin 7.7.6撰写,不同Vaadin版本会有细微差异。

Page

API Doc:https://vaadin.com/api/com/vaadin/server/Page.html

Page对象代表当前的浏览器窗口、Tab页,相当于HTML DOM中的window对象。Page的对象的主要功能有:

  • 注册浏览器级监听器(如:窗口事件、URI变更事件等);
  • 获得浏览器窗口信息(如:高度、宽度、状态、样式、语言环境、浏览器信息、窗口信息、标题栏信息等);
  • 设置以上信息;
  • 开启新窗口、修改URI片段、刷新窗口内容等。

UI

API Doc:https://vaadin.com/api/com/vaadin/ui/UI.html

UI对象代表着HTML片段,通常情况下,一个UI将填充整个页面(篇幅、窗口,随便怎么叫,总而言之就是你点了某个链接之后在窗口中看到的内容),当然,也有一个页面包含多个UI的情况(我们在开发HTML页面时也会遇到把一个页面内容嵌到另一个页面中的情况)。从某种意义上讲,UI有点像HTML DOM中的document对象,其实这样说并不确切。UI相当于一个web应用的视口,代表着URL中从context之后的URI。举个例子:如果说Page对应到http://localhost:8080/myvaadinprj,那么,假设我们有一个UI,这个UI的名字是MyUI,那么,对应到URL上就是http://localhost:8080/myvaadinprj/my

看看下面这幅图(从官网的book of vaadin.pdf中截取):

Image 16图-1

从这个结构上看,UI像不像HTML里的<body>?

Vaadin推荐我们用single-page的方式来构建web应用,这也是当前的趋势,所以,一般情况下一个由vaadin构建的web应用中只有一个UI。到这里你肯定会有一大堆疑问,别着急,接着往下看。

View

API Doc:https://vaadin.com/api/com/vaadin/navigator/View.html

View是个接口。上面我在介绍UI时说UI像个视口(viewport),那么View就是视口中不断切换的内容(Content)。在Vaadin中,所有UI元素都是由组件(component)构成,你在web页面上看到的所有东西都是component。不同的component组成了content,既然View就是content,那么也可以说View就是component组合出来的。

说到View,那就不能不提一下Navigator。UI、View、Navigator这三者是构建single-paged web application的基础:UI提供视口(viewport),View组织组件(Component)形成内容,Navigator用来在一个UI中切换不同的View。这样一来,就模拟了之前在页面上点击链接进行页面跳转查看不同页面内容的行为方式。

说的口干舌燥不如举个例子。

我在一个web应用程序中有一个UI、两个View(分别是view1、view2),在UI中有一个成员变量Navigator,并将两个View(view1、view2)都注册到Navigator中。view1中有一个按钮,按钮的click动作就是去执行一段代码:Navigator.navigateTo(“view2”)。现在,运行这个web应用,作为默认显示的页面出来了,页面上有一个按钮。此时,你看一下浏览器的地址栏,你应该能看到类似http://localhost:8080/myvaadinprj#view1。这个view1的资源指的就是当前被默认显示出来的view1。现在点击页面上的按钮,click,okay,view2的内容显示出来了,view1的按钮没了。你再看看浏览器地址栏,你会发现URL变成了http://localhost:8080/myvaadinprj#view2。就是这样,View所对应的URL就是#后面的那段字符串。

Okay,至此,Page、UI和View的用途就介绍到这里,欢迎各位读者赐教、指正。

转载于:https://www.cnblogs.com/rickqin/p/6280395.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值