题目一:请查找资料,简单描述Web应用开发框架Vue.js、React.js、Angular.js的特点,及在移动应用方面的发展,每种400字至600字。
1. Web应用开发框架——Vue.js:
特点:
- Vue.js是一套用于构建用户界面的渐进式JavaScript框架。 自带有各种可用于构建用户界面的备选工具,被设计为可以自底向上逐层应用。核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用(SPA)提供驱动。
- Vue.js应用于小型应用。渐进式构建能力是 vue.js 最大的优势,vue 有一个简洁而且合理的架构,使得它易于理解和构建。vue 有一个强大的充满激情人群的社区,这使得为一个空白项目创建一个综合的解决方案变得容易。
- Vue 既可以在单独的页面上用来解决简单的任务,也可以作为成熟的工业应用程序的基础。Vue.js 是一个用于构建图形用户界面的高级框架。它也可以与一些现代工具和附加库一起,用于构建复杂的单向应用程序。
- Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API实现响应的数据绑定和组合的视图组件。核心是一个响应的数据绑定系统。;
- Vue.js是一个构建数据驱动的Web界面的库。
- Vue.js模块化,目前最热的方式是在项目中直接使用ES6的模块化,结合Webpack进行项目打包;
- Vue.js组件化,创造单个component后缀为.vue的文件,包含template(html代码),script(es6代码),style(css样式);
- Vue.js通过简单的API(应用程序编程接口)提供高效的数据绑定和灵活的组件系统。
在移动应用方面的发展和应用:
Vue.js 是一个优秀的前端界面开发 JavaScript 库,它主要的特点有。
- 轻量级的框架
能够自动追踪依赖的模板表达式和计算属性,提供 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API,更加容易理解,能够更快上手。 - 双向数据绑定
声明式渲染是数据双向绑定的主要体现,同样也是 Vue.js 的核心,允许采用简洁的模板语法将数据声明式渲染整合进 DOM。 - 指令
Vue.js 与页面进行交互,主要通过内置指令来完成的,指令的作用是当其表达式的值改变时相应地将某些行为应用到 DOM 上。 - 组件化
组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在 Vue 中,父子组件通过 props 传递通信,从父向子单向传递。子组件与父组件通信,通过触发事件通知父组件改变数据。这样就形成了一个基本的父子通信模式。
在开发中组件和 HTML、JavaScript 等有非常紧密的关系时,可以根据实际的需要自定义组件,使开发变得更加便利,可大量减少代码编写量。
组件还支持热重载(hotreload)。做了修改时不会刷新页面,只是对组件本身进行立刻重载,不会影响整个应用当前的状态。CSS 也支持热重载。 - 客户端路由
Vue-router 是 Vue.js 官方的路由插件,与 Vue.js 深度集成,用于构建单页面应用。Vue 单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来,传统的页面是通过超链接实现页面的切换和跳转的。 - 状态管理
状态管理实际就是一个单向的数据流,State 驱动 View 的渲染,而用户对 View 进行操作产生 Action,使 State 产生变化,从而使 View 重新渲染,形成一个单独的组件。
2. Web应用开发框架——React.js:
特点:
- React 是由Facebook带来的开源JavaScript库。可以被用于构建交互式、有状态、且可重用的用户界面(UI)。呈现具有高性能、且复杂的UI的基本功能。同时可以与虚拟化的文档对象模型(DOM)协同使用,以提供高稳定性的Web应用程序。
- React相对简单和专注。可以轻松掌握概念,并了解单向数据体系结构的好处,简化大量的用户界面应用程序。借助 React 库,可以轻松地创建交互式用户界面。集成 React 时,不需要更改当前项目的代码,只负责渲染界面。
- React更多地面向 JavaScript 而不是 TypeScript,更便于创建原生 Android 和 iOS 移动应用程序;拥有大量适用于各种场合的第三方库(多于 Angular)。
- React采用声明范式,可以轻松描述应用。通过对DOM的模拟,最大限度地减少与DOM的交互。可以与已知的库或框架很好地配合。
- React速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。跨浏览器兼容:虚拟DOM帮助解决了跨浏览器问题,提供了标准化的AP。模块化:为程序编写独立的模块化UI组件,方便进行隔离。单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。兼容性好。
在移动应用方面的发展和应用:
- react声明式开发:命令式开发:原生js和jq写代码的时候,大部分代码都是在操作dom。声明式开发:面向数据编程,不需要直接去控制dom,只要把数据操作好,react自己会去操作dom,可以节省很多操作dom的代码。
- react可以和其他框架并存react所控制的dom就是id为root的dom,页面上的其他dom元素你页可以使用jq等其他框架。
- react组件化,通过继承react的Component去创建一个组件。
- react是单向数据流,父组件传递给子组件的数据,子组件能够使用,但是不能直接通过this.props修改。否则会报错。子组件要传值给父组件,或者要修改父组件的代码,都是要通过父组件传递过来的方法去实现。让数据清晰代码容易维护。react是视图层框架
- react函数式编程,项目中大部分都是函数,连html都是由render函数去实现的。方便代码维护,复杂的函数可以拆分成多个函数。在前端自动化测试也很方便,只需要给函数一个参数,看他的输出就可。
3. Web应用开发框架——Angular.js:
特点:
- Angular是Google提供的一种开源的前端Web应用程序框架。通过其模型-视图-控制器(MVC)式的架构,能够轻松地进行各种开发、维护和测试。不但适用于构建具有高活跃性和交互性的Web应用场景,还广受单页面式应用程序的欢迎。应用在大型超大型web应用开发上。
- Angular方便在一个大型的框架内获取技术资源,框架内的技术很容易移植;方便在框架中训练开发人员,在短期内获得一定的开发能力。
- Angular 差不多是一个完整的开发环境。它包含一整套程序,包括 TypeScript 编译器、AOT 编译器和 Web 服务器。Angular 的 Web 服务器用于调试使用这个框架开发的站点。它是用同一个 Angular CLI 实用程序启动的,要启动 Angular CLI,你需要在 Windows 命令行中进入项目文件夹,并执行ng serve命令。
- Angular易于扩展,可以很轻松地扩展应用来提供实用的新功能。易于维护, 应用程序很容易调试,Bug 很容易修复,有良好的 go mod 和端到端测试支持。Angular 基于浏览器的内部功能可以创建符合标准的 Web 应用程序,包含最新的功能(例如,各种 HTML5 API)、流行的工具和框架。
- Angular有良好的应用程序结构,双向数据绑定,指令,HTML模板,可嵌入、注入和测试。是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能, ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。模板功能强大丰富,自带了极其丰富的angular指令。自定义指令,自定义指令后可以在项目中多次使用。
在移动应用方面的发展和应用:
- Angular.js是google开发者设计和开发的一套前端开发框架,帮助简化前端开发的负担。AngularJS 通过新的属性和表达式扩展了 HTML。AngularJS 可以构建一个单一页面应用程序
- Angular.js有良好的应用程序结构:使用 AngularJS,可以通过MVC(模型 - 视图 - 控制器)或MVVM (模型 - 视图 - 视图模型)模式来组织源代码。AngularJS 是一个 MVW 框架,其中W代表可以用于任何项目。可以组织你的代码模块,可显著提高应用程序的可测试性和可维护性。数据、业务逻辑、视图的分离。
- Angular.js双向数据绑定。可以声明绑定的模型到 HTML 元素。当模型发生变化时,视图会自动更新,反之亦然。这可以减少大量的传统样板代码,保持模型和视图同步。
- Angular.js指令:自定义Directive。
- Angular.jsHTML 模板:AngularJS 使用 HTML 模板,设计人员可以按照通常的方式创建用户界面,而开发人员可以使用声明性绑定语法很容易配合不同的UI组件的数据模型。
- Angular.js依赖注入。ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码。
题目二:简单描述目前自己已经掌握的Web开发技术,有相关项目经历的可以描述一下。
大三上期末生产实习选择了web班,学习了基础的HTML+CSS+JS内容,最后完成了一个模拟小米商城的首页