@@ -6,16 +6,16 @@ order: 19
6
6
7
7
## 介绍
8
8
9
- 在很多Vue项目中,全局组件使用 ` Vue.component ` 来定义 ,紧接着用 ` new Vue({ el: '#container '}) ` 在每个页面内指定一个容器元素。
9
+ 在很多Vue项目中,我们使用 ` Vue.component ` 来定义全局组件 ,紧接着用 ` new Vue({ el: '#container '}) ` 在每个页面内指定一个容器元素。
10
10
11
- 当 JavaScript 只是用来增强某个视图的时候,这种方案在中小型项目中工作得很好 。然而在更复杂的项目中,或者当你的前端完全采用 JavaScript 驱动的时候,以下弊端就显现出来:
11
+ 这种方案在只是使用 JavaScript 增强某个视图的中小型项目中表现得很好 。然而在更复杂的项目中,或者当你的前端完全采用 JavaScript 驱动的时候,以下弊端就显现出来:
12
12
13
13
- ** 全局定义(Global definitions)** 强制要求每个 component 中的命名不得重复
14
14
- ** 字符串模板(String templates)** 缺乏语法高亮,在 HTML 有多行的时候,需要用到丑陋的 ` / `
15
- - ** 不支持CSS(No CSS support)** 意味着当 HTML 和 JavaScript 在组件中都是模块化时 ,CSS 明显被遗漏
15
+ - ** 不支持CSS(No CSS support)** 意味着当 HTML 和 JavaScript 组件化时 ,CSS 明显被遗漏
16
16
- ** 没有构建步骤(No build step)** 限制只能使用 HTML 和 ES5 JavaScript, 而不能使用预处理器,如 Pug (formerly Jade) 和 Babel
17
17
18
- 文件扩展名为 ` .vue ` 的 ** single-file components(单文件组件)** 正是用来解决以上所有的问题 ,并且还可以使用 Webpack 或 Browserify 等开发工具 。
18
+ 文件扩展名为 ` .vue ` 的 ** single-file components(单文件组件)** 为以上所有问题提供了解决方法 ,并且还可以使用 Webpack 或 Browserify 等构建工具 。
19
19
20
20
这是一个文件名为 ` Hello.vue ` 的简单实例:
21
21
@@ -25,43 +25,43 @@ order: 19
25
25
26
26
- [ 完整语法高亮] ( https://github.com/vuejs/awesome-vue#syntax-highlighting )
27
27
- [ CommonJS 模块] ( https://webpack.github.io/docs/commonjs.html )
28
- - [ Component-scoped CSS] ( https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md )
28
+ - [ 组件化的 CSS] ( https://github.com/vuejs/vue-loader/blob/master/docs/en/features/scoped-css.md )
29
29
30
- 正如我们说过的,我们可以使用预处理器来完成简洁和功能更丰富的组件 ,比如 Jade,Babel (with ES2015 modules),和 Stylus。
30
+ 正如我们说过的,我们可以使用预处理器来构建简洁和功能更丰富的组件 ,比如 Jade,Babel (with ES2015 modules),和 Stylus。
31
31
32
32
<img src =" /images/vue-component-with-preprocessors.png " style =" display : block ; margin : 30px auto " >
33
33
34
- 这些特定的语言只是例子,你可以只是简单地使用 Buble,TypeScript,SCSS,PostCSS - 或者一些其他的能够帮助你提高生产力的预处理器 。
34
+ 这些特定的语言只是例子,你可以只是简单地使用 Buble,TypeScript,SCSS,PostCSS - 或者其他任何能够帮助你提高生产力的预处理器 。
35
35
36
36
<!-- TODO: include CSS modules once it's supported in vue-loader 9.x -->
37
37
38
- ## 启程
38
+ ## 起步
39
39
40
40
### 针对刚接触 JavaScript 模块开发系统的用户
41
41
42
- 使用 ` .vue ` 组件,我们就进入了高级 JavaScirpt 应用领域。如果你没有准备好的话,意味着还需要学会使用一些附加的工具:
42
+ 有了 ` .vue ` 组件,我们就进入了高级 JavaScirpt 应用领域。如果你没有准备好的话,意味着还需要学会使用一些附加的工具:
43
43
44
44
- ** Node Package Manager (NPM)** : 阅读 [ Getting Started guide] ( https://docs.npmjs.com/getting-started/what-is-npm ) 直到 _ 10: Uninstalling global packages_章节.
45
45
46
- - ** Modern JavaScript with ES2015/16** : 阅读 Babel 的 [ Learn ES2015 guide] ( https://babeljs.io/docs/learn-es2015/ ) . 你现在不需要记住所有的细节特征,但是保留这个页面作为以后可以快速找到的参考 。
46
+ - ** Modern JavaScript with ES2015/16** : 阅读 Babel 的 [ Learn ES2015 guide] ( https://babeljs.io/docs/learn-es2015/ ) . 你不需要立刻记住每一个方法,但是你可以保留这个页面以便后期参考 。
47
47
48
- 在你花一些时日了解这些资源之后,我们推荐你切换到 [ webpack-simple] ( https://github.com/vuejs-templates/webpack-simple ) 模板参考。跟着这些指示,你应该有一个Vue 项目用到 ` .vue ` 组件, ES2015 和 任意时间 热重载( hot-reloading ) 运行 !
48
+ 在你花一些时日了解这些资源之后,我们建议你参考 [ webpack-simple] ( https://github.com/vuejs-templates/webpack-simple ) 。只要遵循指示,你就能很快的运行一个用到 ` .vue ` 组件, ES2015 和 热重载( hot-reloading ) 的Vue项目 !
49
49
50
- 这个模板使用 [ Webpack] ( https://webpack.github.io/ ) ,一个模块打包工具,将多个模块打包成最终的应用。要学习更多的关于 Webpack 的内容, [ 这个视频] ( https://www.youtube.com/watch?v=WQue1AN93YU ) 提供了很好的介绍。 当你学会这些基础, 你可能想切换到 [ 这个在 Egghead.io上的 高级 Webpack 课程] ( https://egghead.io/courses/using-webpack-for-production-javascript-applications ) .
50
+ 这个模板使用 [ Webpack] ( https://webpack.github.io/ ) ,一个能将多个模块打包成最终应用的模块打包工具。 [ 这个视频] ( https://www.youtube.com/watch?v=WQue1AN93YU ) 介绍了Webpack的更多相关信息。 学习了这些基础知识后, 你可能想看看 [ 这个在 Egghead.io上的 高级 Webpack 课程] ( https://egghead.io/courses/using-webpack-for-production-javascript-applications ) .
51
51
52
- 在 Webpack中,每个模块被包含到 bundle 之前都由相应的一个 "loader" 来转换,Vue 也提供 [ vue-loader] ( https://github.com/vuejs/vue-loader ) 插件来保证 ` .vue ` 单文件组件 的转换. 这个 [ webpack-simple] ( https://github.com/vuejs-templates/webpack-simple ) 模板已经为你准备好了所以的东西 ,但是如果你想了解更多关于 ` .vue ` 组件和 Webpack 一起时是如何工作的 ,你可以阅读 [ vue-loader 的文档] ( https://vue-loader.vuejs.org ) 。
52
+ 在 Webpack中,每个模块被打包到 bundle 之前都由一个相应的 "loader" 来转换,Vue 也提供 [ vue-loader] ( https://github.com/vuejs/vue-loader ) 插件来执行 ` .vue ` 单文件组件 的转换. 这个 [ webpack-simple] ( https://github.com/vuejs-templates/webpack-simple ) 模板已经为你准备好了所有的东西 ,但是如果你想了解更多关于 ` .vue ` 组件和 Webpack 如何一起运转的信息 ,你可以阅读 [ vue-loader 的文档] ( https://vue-loader.vuejs.org ) 。
53
53
54
54
### 针对高级用户
55
55
56
- 无论你喜欢 Webpack 或是 Browserify,我们为简单的和更复杂的项目都提供了一些文档模板。我们建议浏览 [ github.com/vuejs-templates] ( https://github.com/vuejs-templates ) ,找到你需要的部分,然后参考 README 中的说明,使用 [ vue-cli] ( https://github.com/vuejs/vue-cli ) 工具生成新的项目。
56
+ 无论你更钟情 Webpack 或是 Browserify,我们为简单的和更复杂的项目都提供了一些文档模板。我们建议浏览 [ github.com/vuejs-templates] ( https://github.com/vuejs-templates ) ,找到你需要的部分,然后参考 README 中的说明,使用 [ vue-cli] ( https://github.com/vuejs/vue-cli ) 工具生成新的项目。
57
57
58
- ## 产品部署
58
+ ## 生产环境配置
59
59
60
- Vue 的压缩独立构建 (minified standalone build)版本为了更小的文件体积已经为你移除了所有的警告,但是当你使用 Webpack 或是 Browserify 这样的工具的时候,你需要一些附加的配置来实现 。
60
+ 为了更小的文件体积, Vue 的压缩版本 (minified standalone build)已经为你移除了所有的警告,但是在使用 Webpack 或是 Browserify 这样的工具构建 Vue.js 应用时,需要添加一些配置 。
61
61
62
62
### Webpack
63
63
64
- 使用 Webpack 的 [ DefinePlugin] ( http://webpack.github.io/docs/list-of-plugins.html#defineplugin ) 指明产品环境,使得警告信息在压缩期间可以通过 UglifyJS 自动丢弃 。配置实例:
64
+ 使用 Webpack 的 [ DefinePlugin] ( http://webpack.github.io/docs/list-of-plugins.html#defineplugin ) 指定当前环境为生产环境,使得警告块在 UglifyJS 压缩代码过程中被自动丢弃 。配置实例:
65
65
66
66
``` js
67
67
var webpack = require (' webpack' )
@@ -86,8 +86,8 @@ module.exports = {
86
86
87
87
### Browserify
88
88
89
- - 运行你的打包命令,并将 ` NODE_ENV ` 设置为 ` "production" ` ,这会告诉 ` vueify ` 避免包含 hot-reload 和 相关开发代码。
90
- - 应用全局 [ envify] ( https://github.com/hughsk/envify ) 转换到你的 bundle 中。在环境变量条件块中添加,允许压缩工具从折叠的 Vue 的源代码中移除所有的警告信息 ,例如:
89
+ - 将 ` NODE_ENV ` 设置为 ` "production" ` ,然后运行打包命令, ` vueify ` 会自动避免打包 热重载 和 相关开发代码。
90
+ - 应用全局 [ envify] ( https://github.com/hughsk/envify ) 转换到你的 bundle 中。这样压缩工具就能从从环境变量条件块中移除所有警告信息的 Vue 源代码 ,例如:
91
91
92
92
``` bash
93
93
NODE_ENV=production browserify -g envify -e main.js | uglifyjs -c -m > build.js
0 commit comments