前端开发框架文档

前端开发框架—Vue.js,webpackVue.js:轻 效的前端组件化 案.

Vue.js 是 款极简的 mvvm 框架,如果让我 个词来形容它,就是 ·。如果 话来描述它,它能够集众多优秀逐流的前端框架之 成,但同时保持简单 。废话 多说,来看 个 :<script src="vue.js"></script>

<div id="demo">
{{message}}
<input v-model="message">

</div>

<script>
var vm = new Vue({

el: '#demo',data: {

message: 'Hello Vue.js!'}

})</script>

先,代码分两部分, 部分是 html,同时也是视图模板, 包含 个值为 message 的 本何 个相同值的输 框;另 部分是 script,它创建 个 vm 对象,其中绑定的 dom 结点是 #demo,绑定的数据是 {message: 'Hello Vue.js'},最终 的显示效果就是 段 Hello Vue.js 本加 个含相同 字的输 框, 关键的是,由于数据是双向绑定的,所以我们修改 本框内 本的同时,第 段 本和被绑定的数据的 message 字段的值都会同步 新—— 这底层的复杂逻辑,Vue.js 已经全部帮你做好 。

web 组件化
最后要介绍
Vue.js 对于 web 组件化开发的思考和设计

如果我们要开发 型的 或 web 应 ,web 组件化的思维是 常重要的,这也是今天整个前端社区 久 衰的话题。

Vue.js 设计 个 *.vue 格式的 件,令每 个组件的样式、模板和脚本集合成 整个 件, 每个 件就是 个组件,同时还包含 组件之间的依赖关系,麻雀虽 五脏俱全,整个组件从外观到结构到特性再到依赖关系都 览 余 :

从功能 度,template, directive, data-binding, components 各种实 功能都 全, filter,computed var, var watcher, custom event 这样的 级功能也都洋溢着作者的巧思;从开发体验 度,这些设计 乎是完全 然的,没有刻意设计过或 考虑的感觉,只有个别 得已的地 带 框架专属的 v- 前缀。从性能、体积 度评估,Vue.js 也 常有竞争 !

webpack 是另 个近期发现的好东 。它主要的 途是通过 CommonJS 的语法把所有浏览 端需要发布的静态资源做相应的准备, 如资源的合并和打包。

举个 ,现在有个脚本主 件 app.js 依赖 另 个脚本 module.js// app.js

var module = require('./module.js')... module.x ...

// module.jsexports.x = ...

则通过 webpack app.js bundle.js 命令,可以把 app.js module.js 打包在 起并保存到 bundle.js

同时 webpack 提供 强 的 loader 机制和 plugin 机制,loader 机制 持载 各种各样的静态资源, 只是 js 脚本、连 html, css, images 等各种资源都有相应的 loader 来做依赖管 和打包; plugin 则可以对整个 webpack 的流程进 定的控制。

如在安装并配置 css-loader style-loader 之后,就可以通过 require('./bootstrap.css') 这样的 式给 载 份样式表。 常 。

webpack 背后的原 其实就是把所有的 js 资源都转换成 js (如把 个 css 件转换成创建 个style 标签并把它插 document”的脚本、把图 转换成 个图 地址的 js 变 或 base64 编码等),然后 CommonJS 的机制管 起来。 开始对于这种技术形态我个 还是 太喜欢的, 过随着 断的实践和体验,也逐渐习惯并认同 。

最后,对于之前提到的 Vue.js,作者也提供 个叫做 vue-loader npm 包,可以把 *.vue 件转换成 webpack 包,和整个打包过程融合起来。所以有 Vue.jswebpack vue-loader,我们 然就可以把它们组合在 起试试看!

项 实践流程
回到正题。今天要分享的是,是基于上 两个东 :
Vue.js webpack,以及把它们 联起来的

vue-loader
Vue.js
的作者以及提供 个基于它们三者的项 示 。 我们的 会 贴近实际 作的场景,

同时和团队之前总结出来的项 特点和项 流程相吻合。
 录结构设计

<components> 组件 录, 个组件 个 .vue
a.vue
b.vue
<lib>
如果实在有 能算组件,但也 来 外部 (tnpm) 的代码,可以放在这 foo.css

bar.js
<src>
主应 / 相关 件
app.html html
app.vue
vue
app.js
通常做的事情只是 var Vue = require('vue'); new Vue(require('./app.vue'))

<dist> (ignored)
<node_modules> (ignored)
gulpfile.js
设计项 打包/监听等任务
package.json 记录项 基本信息,包括模块依赖关系README.md 项 基本介绍
打包

通过 gulpfile.js 我们可以设计整套基于 webpack 的打包/监听/调试的任务在 gulp-webpack 包的官 档 推荐的写法是这样的:

var gulp = require('gulp');
var webpack = require('gulp-webpack');var named = require('vinyl-named');gulp.task('default', function() {

return gulp.src(['src/app.js', 'test/test.js']).pipe(named())
.pipe(webpack())

.pipe(gulp.dest('dist/'));});

我们对这个 件稍加修改, 先加 vue-loader

tnpm install vue-loader --save

.pipe(webpack({module: {

loaders: [
{ test: /\.vue$/, loader: 'vue'}

]}

}))
其次,把要打包的 件 表从 gulp.src(...) 中抽出来, 将来维护,也有机会把这个信息共享到别的任务

var appList = ['main', 'sub1', 'sub2']

gulp.task('default', function() {
return gulp.src(mapFiles(appList, 'js'))

...})

/**
* @private*/

function mapFiles(list, extname) {
return list.map(function (app) {return 'src/' + app + '.' + extname})

}
现在运 gulp 命令,相应的 件应该就打包好并 成在 dist 录下。然后我们在 src/*.html 中加 对这些 成好的 js 件的引 :

<!DOCTYPE html><html>
<head>

<meta charset="utf-8">

<title>Main</title></head>
<body>

<div id="app"></div>

<script src="../dist/main.js"></script>
</body>
</html>
浏览 打开 src/main.html 这时 已经可以正常 作

加 监听

监听 加简单,只要在刚才 webpack(opt) 的参数中加 watch: true 就可以 。

.pipe(webpack({module: {

loaders: [
{ test: /\.vue$/, loader: 'vue'}

]

},

watch: true}))

当然最好把打包和监听设计成两个任务,分别起名为 bundle watch:

gulp.task('bundle', function() {
return gulp.src(mapFiles(appList, 'js'))

.pipe(named()).pipe(webpack(getConfig())).pipe(gulp.dest('dist/'))

})

gulp.task('watch', function() {
return gulp.src(mapFiles(appList, 'js'))

.pipe(named()).pipe(webpack(getConfig({watch: true}))).pipe(gulp.dest('dist/'))

})

/**
* @private*/

function getConfig(opt) {var config = {

module: {loaders: [

{ test: /\.vue$/, loader: 'vue'}]

}}

if (!opt) {return config

}
for (var i in opt) {

config[i] = opt}

return config}

现在你可以 必每次修改 件之后都运 gulp bundle 才能看到最新的效果,每次改动之后直接刷新浏览 即可。 

目录 1. 介绍 5 1.1 项目概述 5 1.2 范围 5 1.3 参考 5 2. 用例视图 6 2.1 WAS - SAP R/3 集成用例 6 2.1.1 车辆列表功能 6 2.1.2 车辆订购申请单的创建功能 7 2.1.3 车辆订购申请单查询功能 7 2.1.4 车辆订购申请单的修改功能 7 2.1.5 索赔单的创建 8 2.1.6 数据交换需求 8 2.2 PORTAL集成的用例 8 2.2.1 经销商 Portal 框架 9 2.2.2 车辆销售系统和Portal的整合 9 2.2.3 Nadcon system 和Portal系统的整合 10 2.2.4 车辆销售系统和Nadcon 的整合 10 3. 逻辑视图 10 3.1 兼容性 10 3.2 系统架构 10 3.2.1 逻辑架构 10 3.2.2 Web 应用的包设计 12 3.3 组件设计 - J2EE WEB APPLICATION 13 3.3.1 MVC 框架 – Struts 13 3.3.2 日志 14 3.3.3 BAPI代理结构 15 3.3.4 销售商用户信息组件和安全组件 16 3.3.5 页面表现框架 17 3.3.6 车辆列表功能 18 3.3.7 车辆订购请求单创建 24 3.3.8 车辆订购申请单查询列表 32 3.3.9 车辆订购申 请单修改 37 3.3.10 索赔单创建 43 3.3.11 数据交换 50 3.3.12 登录 & 退出 53 4. 数据视图 56 4.1 车辆列一表 57 4.2 车辆订购申请单创建 58 4.3 车辆订购申请单列表 59 4.4 车辆订购申请单修改 60 4.5 索赔单创建 61 5. 实现视图 62 5.1 缓存策略 62 5.2 会话管理 62 5.3 连接管理 62 5.4 集成的需要 62 5.4.1 WAS – SAP 集成 63 5.4.2 单点登陆 63 5.4.3 Vehicle Sale 系统 和 Nadcon的集成 63 6. 部署视图 64 6.1 安装需求 64 6.1.1 服务器的安装 64 6.2 服务支持的考虑 64 6.2.1 安全 64 6.2.2 服务器管理 64 7. 实现环境视图 64 7.1 开发环境 64 7.2 测试环境 64 7.3 生产环境 65 7.3.1 网络 65 7.4 域信息 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值