美文网首页
JavaScript 笔记六:模块化、模板引擎、同构、SSR

JavaScript 笔记六:模块化、模板引擎、同构、SSR

作者: 卡布奇诺的秘密_Me | 来源:发表于2018-12-27 19:23 被阅读0次

    都是本人理解,笔记大致概念,不详细也并非完全正确,所以仅供参考。


    模块化

    为什么要模块化开发?
    因为前端现在要做的事要多了,代码越来越大了,依赖也越来越多了,所以不同的依赖的加载,不同开发人员的协同,如果不进行模块化的开发,会非常难以维护,组织代码会非常麻烦,由此,需要模块化开发,使代码层次和结构更清晰,使项目维护变得简单。

    两种模块化开发规范:

    • AMD
    • CommonJS

    详细的讲解参照这里,以下简单说明

    AMD

    AMD 是一个在浏览器端模块化开发的规范,它只定义了 define() 函数,可以通过此函数创建一个模块,供外部调用,例如:

    define('myModule',['jQuery', 'exports'],function(){
      exports.abc = 123;
      exports.test = function(){
        console.log('haha')
      }
    });
    

    CommonJS

    CommonJS 是服务器端模块的规范,Node.JS首先采用了JS模块化的概念。
    根据CommonJS规范,一个单独的文件就是一个模块。每一个模块都是一个单独的作用域,也就是说,在该模块内部定义的变量,无法被其他模块读取,除非定义为global对象的属性,它使用 module.exports 来输出模块

    var i = 1;
    var max = 30;
    
    module.exports = function () {
      for (i -= 1; i++ < max; ) {
        console.log(i);
      }
      max *= 1.1;
    };
    

    模板引擎

    在如今的开发中,前后分离越来越多,所以数据与界面分离的也越来越重要,所以模板引擎的分量也越来越重。
    简单来说,模板引擎就是为了让动态页面渲染的时候,可以简化字符串的拼接操作的东西。
    模板引擎有很多种,举 vue 的渲染为例:

    <template>
      <div>
        <div v-for="(item, i) in list" :key="i">
          {{ item.name }}的年龄是:{{ item.age }}
        </div>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          list: [
            {
              name: '小明',
              age: 10
            },
            {
              name: '小张',
              age: 11
            },
            {
              name: '小王',
              age: 12
            }
          ]
        };
      }
    };
    </script>
    

    template 中, v-for 、 {{}} 就是模板引擎的语法,最终渲染出来的HTML如下:

    <div>
      <div>小明的年龄是:10</div>
      <div>小张的年龄是:11</div>
      <div>小王的年龄是:12</div>
    </div>
    

    现在的模板有很多,如何选择和选择哪个请参考此文章


    同构

    同构是指同开发一个可以跑在不同的平台上的程序。 例如开发一段 js 代码可以同时被基于node.js 开发的web server 和浏览器使用。

    同构的详情解释参照此文章:点此前去

    SSR 服务端渲染

    因为HTML/CSS/JS本质就是可被浏览器解析并执行的字符串,所以服务端渲染的本质是在服务端将业务逻辑处理,将站点的代码和结构加工完成,将成品的字符串返回,这就是 SSR 服务端渲染。

    服务端渲染的优势很明显,因为在服务端完成了逻辑和业务,所以减少了请求,不需要先下载一堆 js 和 css 后才能看到页面,对首屏性能提升很大。

    前后端的渲染各有利弊,在此不做描述,可参考此文章

    模板引擎、同构、服务端渲染的知识点是一体的,所以细细研究一下就能了解三者。

    相关文章

      网友评论

          本文标题:JavaScript 笔记六:模块化、模板引擎、同构、SSR

          本文链接:https://www.haomeiwen.com/subject/ptedlqtx.html