关于前端常见的2种开发模式

    一、前言

2018年12月底,感觉做事情不是太顺畅。。。就当是运气不好吧。。。XX总喜欢把自己的问题——推拖到别人身上,什么事情都觉得自己的就是完美(都是别人的问题),你这么能,你咋不上天呢。。。

已是2019年了,祝大家新年快乐,开开心心,心想事成,万事如意。。。。。。直接进入正题哈。。。

前端开发大家熟知非常传统的开发模式,像HTML/CSS/JS 一锅炖的方式。虽然可以较快速、无规范开发。。。

但对于代码编程可维护性、可读性、可迁移性等方面来说简直就是灾难。。。于是便有了模板式的开发&&组件化编程方式的出现。。。

    二、模板式的开发

Vue 自定义父子组件通信模板渲染, 自定义的   <book-item> </book-item>  标签将被替换成自定义的模板 <li></li>  输出。。。 代码请点击

<div id="app">
        <ul>
            <book-item v-for="book in booksList" v-bind:book="book"  v-bind:key="book"></book-item>
        </ul>
     </div>
     <script>
         Vue.component("book-item",{
             "props":["book"], //父组件向子组件传递数据
             template : "<li>{{book.id}}-{{book.title}}<li>" //自定义模板
         })
         const app  =  new Vue({
             el:"#app",
             data:{  //数据
                booksList: [
                    { id: 1, title: "Vue Component自定义组件模板" },
                    { id: 2, title: "Webpack前端资源模块化管理和打包工具" },
                    { id: 3, title: "JavaScript语言精粹" },
                    { id: 4, title: "JavaScript高级程序设计" }
                ]
             }
         });
</script>

或者像artTemplate(同时支持NodeJS【NodeJS又支持requireJS模块化】requireJs模块化组合使用就可以搞很多事情了。。。),

模板渲染技术如(将id="test"代码片端插入id="content")DOM元素中。。。其中 {{}} 插值表达式与Vue写法很相似。。。

<div id="content"></div>
<script id="test" type="text/html">
    <h1>{{title}}</h1>
    <ul>
            {{each list value i}}
                    <li>索引 {{i + 1}} :{{value}}</li>
            {{/each}}
    </ul>
</script>
<script>
   var data = {
        title: ‘基本例子‘,
        isAdmin: true,
        list: [‘文艺‘, ‘博客‘, ‘摄影‘, ‘电影‘, ‘民谣‘, ‘旅行‘, ‘吉他‘]
    };
    var html = template(‘test‘, data);
    document.getElementById(‘content‘).innerHTML = html;
</script>

    三、JS组件化 纯JavaScript组件化的开发(称去页面HTML化的开发)

去HTML化并不是说没有页面中没有HTML,而是将页面中的HTML骨架整合到JS组件中去,通过调用组件的方式初始化、将渲染的数据挂载到DOM元素上

部件库(Widget Factory)旨在解决这些问题,它移除了模板,并为插件创建了一个一致的 API(一套设计规范)

尽管依赖于jQuery,随着使用场景不同,都会体现着各自的独特性(或优缺点)。这样来看的话,不见得就比Vue落后。。。

UI设计的可视化界面通过面向对象方式抽象类、实现类、层级分离,从而实现复用性、可移植性(一套代码稍微修改PC/APP端都能使用)、维护性更高的代码。

一个简单的jQuery Widget部件组件生命周期大致如下。。。

 $.widget("命名空间", "继承父类", {
        //默认参数
        options: { },
        //初始化,控件生命周期内只运行一次
        _init: function () {
                this._super();//调用父类方法
        },
        //创建控件,控件生命周期内会运行多次
        _create: function () {},
        //设置参数
        _setOption: function (key, value) {
            console.log(key,value)
            // In jQuery UI 1.8及以前用法
            $.Widget.prototype._setOption.apply(this, arguments);
            // In jQuery UI 1.9及以后用法
            this._super("_setOption", key, value);
        },
        // 释放控件 销毁
        destroy: function () {
            // In jQuery UI 1.8及以前用法
            $.Widget.prototype.destroy.call(this);
            // In jQuery UI 1.9及以后
        }
    });
})(jQuery);

避开代码不谈,先看一个可视化界面的一个普通的按钮。。。

按照PS图层的概念来分层理解。细分如下:

前端熟知一个网页都是由若干个单元(小组件)拼凑而成的(如文本组件、图片组件、按钮组件、表单组件等。。。组合而成)组件(或说部件)最大的好处是可以自由组合、灵活性。

那能不能写一套组件,将按钮层按照面向对象编程思维分离成抽象类、实现类(如文本抽象类、按钮抽象类、文本实现类、按钮实现类)?同时稍微修改下代码,PC端也能使用呢,答案是可以的~

下节将通过一个按钮背后的故事把PC、App端通用面向对象组件化的编程思维分享出来~

作者:Avenstar

出处:https://www.cnblogs.com/zjf-1992/p/10198910.html

关于作者:专注于WEB前端开发、知识管理提高学习效率、执行效率

本文版权归作者所有,转载请标明原文链接

资料参考

https://www.w3cplus.com/vue/seven-ways-to-define-a-component-template-by-vuejs.html

https://blog.csdn.net/chenchun91/article/details/53375041

http://aui.github.io/art-template/zh-cn/docs/installation.html

http://www.jqueryui.org.cn/tutorial/37.html

原文地址:https://www.cnblogs.com/zjf-1992/p/10198910.html

时间: 2024-08-27 00:45:54

关于前端常见的2种开发模式的相关文章

javaweb学习总结(二十一)——JavaWeb的两种开发模式

SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1 在jsp+javabean架构中,JSP负责控制逻辑.表现逻辑.业务对象(javabean)的调用. JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下

EntityFramework 学习 一 三种开发模式

Entity Framework支持3种不同的开发方法 1.Code First 2.Model First 3.Database First Code First 使用Code First开发模式,你完全避免与EDMX间的开发工作.你首先写好POCO,然后从这些POCO类中创建数据库 喜欢使用DDD(Domain-Driven Desing)领域驱动设计的开发者,更喜欢先编写领域类,然后生成数据库来持久化数据 Model First 使用Model First开发模式,你通过EDMX 设计器创

Java开发web的几种开发模式

Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket等等)并不了解,这里就不列举了. JSP+JAVABEAN开发模式:    特点:该模式将业务逻辑与页面表现进行分离,在一定程度上增加了程序的可调试性和维护性.    缺点:页面将控制与显示集于一身.    结论:简单,适合小型项目的快速构建与运行. JSP+Servlet+JavaBean开发模式:    特点:JSP作

AGPS 常见的两种定位模式

SI 定位模式: 用户发起定位请求,辅助GPS 模块快速进行定位.时间在6秒-15秒之间. 这个方式能够有效的解决普通GPS 最快需要30秒时间获得卫星星历的搜星慢的问题,如果使用AGPS将通过中移动的服务器拿到卫星星历,时间可以缩短到6秒-15秒. 对应流程: 启动AGPS UI 管理 -> 开始获取基站信息.IMSI信息―> 启动拨号->与中移动服务器进行SUPL 协议通讯获取卫星星历――> 配置GPS模块进行定位->关闭通讯网络-> 导航软件快速获取精度.纬度.

javaweb基础(21)_两种开发模式

SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1 在jsp+javabean架构中,JSP负责控制逻辑.表现逻辑.业务对象(javabean)的调用. JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下

javaweb学习总结(二十一)——JavaWeb的两种开发模式【转】

原文 地址:http://www.cnblogs.com/xdp-gacl/p/3908610.html SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1 在jsp+javabean架构中,JSP负责控制逻辑.表现逻辑.业务对象(j

EF3:Entity Framework三种开发模式实现数据访问

前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对于程序员没有哪种模式最好,只有哪种模式更适合.接下来我将分别使用这三种开发模式实现同一数据库模型的数据持久化功能.希望通过实践能帮助你找到更适合你的开发模式 Database First Database First开发模式指以数据库设计为基础,并根据数据库自动生成实体数据模型,从而驱动整个开发流程

javaweb(二十一)——JavaWeb的两种开发模式

一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示 图1-1 在jsp+javabean架构中,JSP负责控制逻辑.表现逻辑.业务对象(javabean)的调用. JSP+JavaBean模式适合开发业务逻辑不太复杂的web应用程序,这种模式下,JavaBean用于封装业务数据,JSP即负责处理用户请求,又显示数据. 1.2.JSP+JavaBean开发模式编写计算器 首先分析一下jsp和javabe

MVC学习之数据库开发模式:三种开发模式总结:

先介绍下三种开发模式的使用方法: 1.数据库优先: 数据库开发之:数据库优先主要步骤: 1.在数据库中建立好数据库和所需要得到表 2.选中Models文件夹,添加新项目--数据--ADO.NET实体数据模型……在生成数据库页面选着从数据库中生成 在完成2之后,会在web.config里面自动生成数据库连接字符串 3.创建控制器和对应的视图页面 4.在控制器中创建数据上下文实例对象,该对象是通过连接数据库字符串的名字来创建的. 2.代码优先: 数据库开发之代码优先步骤: 1.在Models文件夹中