1. 程式人生 > >構建個人組件庫——vue.extend和vue.component

構建個人組件庫——vue.extend和vue.component

    需求:構建一個類似elment-ui的元件庫,打包釋出到npm

    個人探索:webpack打包釋出到npm流程 --> 元件開發環境和元件釋出環境探索 -->兩種型別的元件

    個人探索流程和實際流程基本是反著來的

    本文目標:完成兩種型別的元件,extend生成一個類似alert的元件,component生成一個search框元件

    前置條件:本人是基於vue-cli全家桶搭的元件開發環境,別說你不會

  (1)extend元件構建器

    官網描述:聽不懂聽不懂聽不懂 && 官網給的例子很坑 && 官網的元件部分只提到了component(過分啦罵人

    個人描述:暫時還沒有掛載到dom文件流中的一個元件說明(你能在網上找到類似說明的歡迎來噴我,第一眼看到就能看懂的也歡迎噴我 

   (2)component 元件註冊器

    官網描述:很詳細很詳細很詳細 && 例子很多很多很多 && 初學者肯定會用的

    個人描述:我也不需要掛載到dom文件流中,我也還是一個說明(大家都愛用)

    官網的坑:

    extend 寫法:

<div id="mount-point"></div>
// 建立構造器
var Profile = Vue.extend({
  template: '<p>{{firstName}}</p>',
  data: function () {
    return {
      firstName: 'Walter',
    }
  }
})
// 建立 Profile 例項,並掛載到一個元素上(坑!!!!!!!!!!)
new Profile().$mount('#mount-point')

    我用component寫一下:

<hello></hello>
Vue.component('hello',
template: '<p>{{firstName}}</p>',
  data: function () {
    return {
      firstName: 'Walter',
    }
  })

結果都是一樣的

<p>Walter</p>

    看起來,extend寫法還更噁心一點

    不但要建立構造器,還要new一個例項,還要掛載到特定的元素上,這個特定元素最終還被完全替換了,不像component用起來那麼舒服,註冊好特定的名字之後,想在哪裡用,就在哪裡寫元件名,程式還更易讀。

    那不用看下去了,以後都用component了。

    所以說extend到底有什麼優勢呢?只要繞開官網的坑就明白了,生成的例項並不一定要"掛載到一個元素上"。也就是
 

    new 例項().$mount() 的 $mount()$mount()$mount()$mount()$mount()......(重要的坑要提醒一百遍)的引數可以為空,但他依舊能生成一個例項。

那麼問題來了,生成的例項不掛載到dom文件流裡面,有什麼用?木有關係!生成的例項裡面有$el這個引數,記錄了生成的dom啊,這個dom你想插哪裡插哪裡。(document.body.appendChild( 例項.$el))

    總結:component是extend的親民版,但在實現某些特殊需求的時候,就需要用到extend,如alert元件,你肯定希望alert可以動態插入到body中,而不需要在dom文件流中放一個莫名其妙的alert,大部分時間他還是隱藏的。(你能用component實現我服你)

    你肯定以為我會實現一下本文的目標,然而我只打算提供一個思路,有時間會詳細說明兩種型別的元件的實現,以及如何用Vue.use()方法載入個人組件外掛。

相關推薦

構建個人——vue.extendvue.component

    需求:構建一個類似elment-ui的元件庫,打包釋出到npm     個人探索:webpack打包釋出到npm流程 --> 元件開發環境和元件釋出環境探索 -->兩種型別的元件     個人探索流程和實際流程基本是反著來的     本文目標:完成兩

Vue.extendVue.component的聯系與差異

模板 art end sha views article mark 作用 語法 extend 是構造一個組件的語法器. 你給它參數 他給你一個組件 然後這個組件 你可以作用到Vue.component 這個全局註冊方法裏, 也可以在任意vue模板裏使用apple組件 v

Vue.extendVue.component的聯絡與差異

extend 是構造一個元件的語法器.  你給它引數 他給你一個元件 然後這個元件 你可以作用到Vue.component 這個全域性註冊方法裡, 也可以在任意vue模板裡使用apple元件 var apple = Vue.extend({  ….&n

vue中引入typescript開發使用vue.extend()vue.class-component

最近嘗試了一下 TypeScript,試著把一個 Vue 專案改成了 TypeScript 的,感覺還不錯 目前 Vue 和 T

發現一個vue的UI

tar doc lan -c 一個 com 適合 ref http Mint UI 項目主頁:http://mint-ui.github.io/#!/zh-cndemo:http://elemefe.github.io/mint-ui/#/github地址:https://

Vue

car 4.2 com content con git component www int Vux (這個大家都知道的) https://vuxjs.gitbooks.io/vux/content/ vue-strap (bootstrap 的 Vue 版 1.0的)htt

Vue VV-UI 開始接受PR啦,有興趣小夥伴可以一起參與開源哦。

toggle bsp 解決 target from 相關 移除 分享圖片 -m 前言: 剛開源出來的VV-UI目前剛剛起步,組件不是很多,非常歡迎大家的pr和Star。項目地址: https://github.com/VV-UI/VV-UI演示地址: https://vv

一款基於Vue的擴展性 VV-UI

target ren clas 做了 true amp pre 當我 設置 github: https://github.com/VV-UI/VV-UI 演示地址: https://vv-ui.github.io/VV-UI/#/meta-info 1. Loading

[轉]VUE優秀UI合集

合集 pos class view sep book ocs rap nts 原文鏈接 隨著SPA、前後端分離的技術架構在業界越來越流行,前端的業務復雜度也越來越高,導致前端開發者需要管理的內容,承擔的職責越來越多,這一切,使得業界對前端開發方案的思考多了很多,以react

Vue CLI 3開發中試用UIkit 3

基本 輕量 接下來 mod ide 當前 -a ext module 一、UIkit組件庫與vuikit簡介 在選擇好意中的前端開發基本框架後,接下來一個重要任務就是選擇一款好的UI組件庫。其中,UIkit組件庫是一款基於Less+JS的一款輕量級、模塊化、響應式的前端UI

Vue 發布到 npm

.json examples 前期準備 https pac uri ebp dex amp 制作了一套自己的組件庫,並發布到npm上,項目代碼見 GitHub 。 前期準備 有一個npm賬號 安裝了vue-cli 搭建項目 vue init webpack hg-v

基於 Vue.js 的移動端mint-ui實現無限滾動加載更多

== spi dex try for ike country ble 頁面 通過多次爬坑,發現了這些監聽滾動來加載更多的組件的共同點, 因為這些加載更多的方法是綁定在需要加載更多的內容的元素上的, 所以是進入頁面則直接觸發一次,當監聽到滾動事件之後,繼續加載更多, 所以對於

前端大合集-必備收藏

cal make oom edi ade 情懷 eight engine ebp 前端組件庫 搭建web app常用的樣式/組件等收集列表(移動優先) 0. 前端自動化(Workflow) 前端構建工具 Yeoman &nd

前端

簡單 found -c 格式化 zone.js down 其他 lightbox fis 前端組件庫 搭建web app常用的樣式/組件等收集列表(移動優先) 0. 前端自動化(Workflow) 前端構建工具 Yeoman – a set of tools

基於jquery的

頂部 npr div call 速度 -c ner delay 索引 github地址:https://github.com/pomelott/jquery-plug-in 組件庫(componentGallery) 使用方法 1.引入css文件(建議復制粘貼至項

react、模板

download reac 螞蟻 模板 design .com pro 網站 react教程 開源的有螞蟻金服的: 1、https://pro.ant.design/index-cn 2、https://pro.ant.design/docs/getting-started

Django——分頁器中間

ber 處理 spa 使用 view template 中間 display temp 分頁器 Django內置分頁器(paginator) 分頁器函數為paginator,裏面有幾個重要的參數需要我們了解 paginator = Paginator(book_l

模擬admin自己開發stark之搜索批量操作

btn 但是 相關 操作 else htm actions 函數 自己 搜索相關,搜索的本質就是從數據庫查詢出來的數據過濾 用戶自定義給出過濾條件joker.py list_display = (‘id‘,‘title‘,‘price‘,) show_add_btn =

按需加載 借助babel-plugin-import實現

introduce 內容 com control ati intro tab style src 前段時間一直在基於webpack進行前端資源包的瘦身。在項目中基於路由進行代碼分離,http://www.cnblogs.com/legu/p/7251562.html。對

如何構建UI設計規範?

以下內容由摹客團隊翻譯整理,僅供學習交流,摹客設計系統是國內獨家設計規範制作平臺。 通過本文,你將學習到 Uber ,Pinterest ,Shopify 和 Airbnb 等知名網站如何利用組件構建統一的UI / UX 設計規範 。