2018年12月底,感受作事情不是太順暢。。。就當是運氣很差吧。。。XX總喜歡把本身的問題——推拖到別人身上,什麼事情都以爲本身的就是完美(都是別人的問題),你這麼能,你咋不上天呢。。。html
已經是2019年了,祝你們新年快樂,開開心心,心想事成,萬事如意。。。。。。直接進入正題哈。。。前端
前端開發你們熟知很是傳統的開發模式,像HTML/CSS/JS 一鍋燉的方式。雖然能夠較快速、無規範開發。。。vue
但對於代碼編程可維護性、可讀性、可遷移性等方面來講簡直就是災難。。。因而便有了模板式的開發&&組件化編程方式的出現。。。jquery
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>
$.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