關於前端常見的2種開發模式

    1、前言

2018年12月底,感受作事情不是太順暢。。。就當是運氣很差吧。。。XX總喜歡把本身的問題——推拖到別人身上,什麼事情都以爲本身的就是完美(都是別人的問題),你這麼能,你咋不上天呢。。。html

已經是2019年了,祝你們新年快樂,開開心心,心想事成,萬事如意。。。。。。直接進入正題哈。。。前端

前端開發你們熟知很是傳統的開發模式,像HTML/CSS/JS 一鍋燉的方式。雖然能夠較快速、無規範開發。。。vue

但對於代碼編程可維護性、可讀性、可遷移性等方面來講簡直就是災難。。。因而便有了模板式的開發&&組件化編程方式的出現。。。jquery

    2、模板式的開發

Vue 自定義父子組件通訊模板渲染, 自定義的   <book-item> </book-item>  標籤將被替換成自定義的模板 <li></li>  輸出。。。 代碼請點擊 git

<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模塊化組合使用就能夠搞不少事情了。。。),github

模板渲染技術如(將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>

    3、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);

 避開代碼不談,先看一個可視化界面的一個普通的按鈕。。。app

按照PS圖層的概念來分層理解。細分以下:模塊化

前端熟知一個網頁都是由若干個單元(小組件)拼湊而成的(如文本組件、圖片組件、按鈕組件、表單組件等。。。組合而成)組件(或說部件)最大的好處是能夠自由組合、靈活性。工具

那能不能寫一套組件,將按鈕層按照面向對象編程思惟分離成抽象類、實現類(如文本抽象類、按鈕抽象類、文本實現類、按鈕實現類)?同時稍微修改下代碼,PC端也能使用呢,答案是能夠的~

下節將經過一個按鈕背後的故事把PC、App端通用面向對象組件化的編程思惟分享出來~

   

做者:Avenstar

出處:http://www.javashuo.com/article/p-halclpzl-z.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

相關文章
相關標籤/搜索