作者:Jasin Yip
链接:http://www.zhihu.com/question...
来源:知乎
模块化中的模块一般指的是 Javascript 模块,比如一个用来格式化时间的模块。
组件则包含了 template、style 和 script,而它的 Script 可以由各种模块组成。比如一个显示时间的组件会调用上面的那个格式化时间的模块。
画的一张图完美地解释了它们之间的关系:
组件化就是做一个知乎,把导航栏拆成一个组件,一个一个回答区域拆成一个组件,编辑区是一个组件,页脚是一个组件,等等。。你可以尽情拆分。一个组件包含了html、css、js代码,可以简单理解为页面的一块。
模块化就是做一个知乎的编辑区组件,假设要有时间格式化、图片格式处理、视频格式处理、代码格式处理,这样很多个js功能。那么你当然可以在HTML里面引入多个JS script,现在更流行更好的方式,是采用引入的方式。
比如在一个编辑区组件里面,引入别人写好的时间格式化和图片格式处理的js代码:
<style>
...
</style>
<template>
...
</template>
<script>
var format = require('../lib/format') // local import
var img = require('lib-img') // npm import
/**
es6
import format from '../lib/format'
import img from 'lib-img'
*/
/**
your code here
*/
format(new Date())
img.getnewurl('http://xxxx.jpg')
</script>