componentvuejs優化,vue web component

本文目錄一覽:

vue.js為什麼在component的template的root標籤中不能使用v-for

Angular的世界裡,templateURL 或者 ng-include 允許使用者在運行時動態的加載遠程模板文件,這個看起來很方便,作為一個自帶功能,但是讓我們來重新審視下這個功能。

首先,它允許我們能夠編寫一個分離的html文件作為模板,這樣子我們就能在編輯的時候看到正確的語法高亮,這也是很多開發者喜歡的原因(註:我覺得這是因為現在的人越來越懶,越來越依賴IDE的原因)。但是分離你的js和html代碼真的是個好主意么?在Vue.js的組件中,js和html天然緊耦合,事實上,這些代碼在一個文件更簡單易懂。在2個文件中來回切換上下文邏輯實際上讓開發者更不爽。在vue的概念里,組件才是vue.js的基本構建單位,並不是模板文件。每一個vue.js的模板都伴隨着他的好基友js,分離他們太過於殘忍了。

其次,因為templateURL是在運行時通過ajax的方式加載模板,不需要構建步驟為了你分離的文件。開發的時候,這很爽,但是上線部署的時候,你就麻煩了。在HTTP2.0沒有大面積支持前,HTTP的請求數仍然是頁面加載的最關鍵因素。想象一下,在你的網站中,每個組件都是用templateURL,那麼頁面出來前,你可能需要加載幾十個HTTP請求。可能你並不知道,大多數的瀏覽器是限制同一域名的並發請求數量的。當你超過這個限額的時候,你頁面的初始渲染時間就得等待每次請求的返回。當然,有工具可以幫助你提前註冊你所有的模板,但是這就多了一個構建步驟,事實上,這就是大型網站的必然趨勢。

那麼,在沒有templateURL的情況下,我們怎麼處理開發環境問題呢?

在js裡面拼接字符串是很爛的做法,使用 script type=”x/template”這種偽模板也不咋樣。那麼,現在是時候提升技能,使用像Webpack或者Browserify這種流行的模塊構建器了。如果以前沒有使用過,可能有點望而卻步,但是相信我,這會有一個質的飛躍。對於大型網站和系統來說,適當的模塊化很必要。更重要的是,你可以編寫Vue組件在一個文件中,再加上語法高亮,自定義的預處理器,熱加載,ES6,內置css,自動前置。可以讓開發者提高10倍效率。

最後,Vue還能懶加載你的組件,加上使用wabpack非常容易,儘管這是為了解決一個問—構建頁面文件過於龐大,初始化比較慢,所以你最好還是分割開來比較好。

拋棄template,擁抱組件世界吧!!

以上是原文的翻譯,並非完全直譯,有很多自己的語言,大概意思相同,原諒我的文采不行。

個人覺得,Vue的組件思想跟React相似,把很多東西放在了js(這裡是.vue文件)中,這種做法是把很多緊耦合的東西集中在一起管理,把原來分割開的css,html,js合成在一起,這個很像很多年的做法,所以很同意玉伯說的,看起來前端是在原地打轉了一圈,開發模式回到了從前的樣子,但是已經螺旋上升了哦,一切都在升級。

通過最近的使用來看,這種component的方式很方便,天然幫你做了解耦的分離,當然你需要轉化自己的思維模式,不能在用jquery的操作DOM方式,同時和Angular也有很多區別,Vue並非一個框架,而是更像一個類庫,這樣很靈活,當然也會有人使用非常hack的方式來編寫代碼,可能會很蛋疼,這就需要自己注意了,對於團隊而言,可以很好的積累各種組件,同時功能切分,合作起來更加容易,就看團隊對Vue的理解程度了。

react和vue哪個比較好

vue比較好。

VUE 是 iOS 和 Android 平台上的一款 Vlog 社區與編輯工具,允許用戶通過簡單的操作實現 Vlog 的拍攝、剪輯、細調、和發布,記錄與分享生活。還可以在社區直接瀏覽他人發布的 Vlog,與 Vloggers 互動。

隨着手機攝像頭的發展,越來越多的人開始使用手機拍照和攝像。攝像一般來說要比拍照門檻高,但是視頻傳播的信息量又遠大於照片。VUE 就誕生在這樣的背景下,希望用拍照一樣簡單的操作,幫助用戶在手機上拍攝精美的短視頻。

主要功能:

分鏡頭:通過點按改變視頻的分鏡數實現簡易的剪輯效果,而剪輯能夠讓視頻傳達更多的信息。

實時濾鏡:由電影調色專家調製的12款濾鏡供選擇,切換至前置攝像頭會出現自然的自拍美顏功能。

貼紙:支持40款手繪貼紙,還可以編輯貼紙的出現時間。

自由畫幅設置:支持1:1、16:9、2.39:1 三種畫幅的視頻拍攝。

vue和react的區別之我見

react和vue都是做組件化的,整體的功能都類似,但是他們的設計思路是有很多不同的。使用react和vue,主要是理解他們的設計思路的不同。

react整體是函數式的思想,把組件設計成純組件,狀態和邏輯通過參數傳入,所以在react中,是單向數據流,推崇結合immutable來實現數據不可變。react在setState之後會重新走渲染的流程,如果shouldComponentUpdate返回的是true,就繼續渲染,如果返回了false,就不會重新渲染,PureComponent就是重寫了shouldComponentUpdate,然後在裡面作了props和state的淺層對比。

而vue的思想是響應式的,也就是基於是數據可變的,通過對每一個屬性建立Watcher來監聽,當屬性變化的時候,響應式的更新對應的虛擬dom。

總之,react的性能優化需要手動去做,而vue的性能優化是自動的,但是vue的響應式機制也有問題,就是當state特別多的時候,Watcher也會很多,會導致卡頓,所以大型應用(狀態特別多的)一般用react,更加可控。

react的思路是all in js,通過js來生成html,所以設計了jsx,還有通過js來操作css,社區的styled-component、jss等,

vue是把html,css,js組合到一起,用各自的處理方式,vue有單文件組件,可以把html、css、js寫到一個文件中,html提供了模板引擎來處理。

react是類式的寫法,api很少,

而vue是聲明式的寫法,通過傳入各種options,api和參數都很多。所以react結合typescript更容易一起寫,vue稍微複雜。

react可以通過高階組件(Higher Order Components–HOC)來擴展,而vue需要通過mixins來擴展

一個react高階組件的例子:

react做的事情很少,很多都交給社區去做,vue很多東西都是內置的,寫起來確實方便一些,

比如 redux的combineReducer就對應vuex的modules,

比如reselect就對應vuex的getter和vue組件的computed,

vuex的mutation是直接改變的原始數據,而redux的reducer是返回一個全新的state,所以redux結合immutable來優化性能,vue不需要。

上面主要梳理了react和vue的4點不同:

(其中第3點在vue3.0支持類式寫法之後就可以去掉了)

react整體的思路就是函數式,所以推崇純組件,數據不可變,單向數據流,當然需要雙向的地方也可以做到,比如結合redux-form,而vue是基於可變數據的,支持雙向綁定。react組件的擴展一般是通過高階組件,而vue組件會使用mixin。vue內置了很多功能,而react做的很少,很多都是由社區來完成的,vue追求的是開發的簡單,而react更在乎方式是否正確。

react.js,angular.js,vue.js學習哪個好

引用一段vuejs官方的解釋。

vue對比其它框架

Angular

選擇 Vue 而不選擇 Angular,有下面幾個原因,當然不是對每個人都適合:

在 API 與設計兩方面上 Vue.js 都比 Angular 簡單得多,因此可以快速地掌握它的全部特性並投入開發。

Vue.js 是一個更加靈活開放的解決方案。它允許以希望的方式組織應用程序,而不是任何時候都必須遵循 Angular 制定的規則。它僅僅是一個視圖層,所以可以將它嵌入一個現有頁面而不一定要做成一個龐大的單頁應用。在配合其他庫方面它給了更大的的空間,但相應,也需要做更多的架構決策。例如,Vue.js 核心默認不包含路由和 Ajax 功能,並且通常假定在應用中使用了一個模塊構建系統。這可能是最重要的區別。

Angular 使用雙向綁定,Vue 也支持雙向綁定,不過默認為單向綁定,數據從父組件單向傳給子組件。在大型應用中使用單向綁定讓數據流易於理解。

在 Vue.js 中指令和組件分得更清晰。指令只封裝 DOM 操作,而組件代表一個自給自足的獨立單元 —— 有自己的視圖和數據邏輯。在 Angular 中兩者有不少相混的地方。

Vue.js 有更好的性能,並且非常非常容易優化,因為它不使用臟檢查。Angular,當 watcher 越來越多時會變得越來越慢,因為作用域內的每一次變化,所有 watcher 都要重新計算。並且,如果一些 watcher 觸發另一個更新,臟檢查循環(digest cycle)可能要運行多次。 Angular 用戶常常要使用深奧的技術,以解決臟檢查循環的問題。有時沒有簡單的辦法來優化有大量 watcher 的作用域。Vue.js 則根本沒有這個問題,因為它使用基於依賴追蹤的觀察系統並且異步列隊更新,所有的數據變化都是獨立地觸發,除非它們之間有明確的依賴關係。唯一需要做的優化是在 v-for 上使用 track-by。

有意思的是,Angular 2 和 Vue 用相似的設計解決了一些 Angular 1 中存在的問題。

React

React.js 和 Vue.js 確實有一些相似 —— 它們都提供數據驅動、可組合搭建的視圖組件。當然它們也有許多不同。

首先,內部實現本質上不同。React 的渲染建立在 Virtual DOM 上——一種在內存中描述 DOM 樹狀態的數據結構。當狀態發生變化時,React 重新渲染 Virtual DOM,比較計算之後給真實 DOM 打補丁。

Virtual DOM 提供了一個函數式的方法描述視圖,這真的很棒。因為它不使用數據觀察機制,每次更新都會重新渲染整個應用,因此從定義上保證了視圖與數據的同步。它也開闢了 JavaScript 同構應用的可能性。

Vue.js 不使用 Virtual DOM 而是使用真實 DOM 作為模板,數據綁定到真實節點。Vue.js 的應用環境必須提供 DOM。但是,相對於常見的誤解——Virtual DOM 讓 React 比其它的都快, Vue.js 實際上性能比 React 好,而且幾乎不用手工優化。而 React,為了最優化的渲染需要處處實現 shouldComponentUpdate 和使用不可變數據結構。

在 API 方面,React(或 JSX)的一個問題是,渲染函數常常包含大量的邏輯,最終看着更像是程序片斷(實際上就是)而不是界面的視覺呈現。對於部分開發者來說,他們可能覺得這是個優點,但對那些像咱一樣兼顧設計和開發的人來說,模板能讓自己更好地在視覺上思考設計和 CSS。JSX 和 JavaScript 邏輯的混合干擾了自己將代碼映射到設計的思維過程。相反,Vue.js 通過在模板中加入一個輕量級的 DSL (指令系統),換來一個依舊直觀的模板,且能將邏輯封裝進指令和過濾器中。

怎麼理解vuejs的component的復用

什麼是組件?組件(Component)是 Vue/guide/componentsponent(“widget”, { template: “button @click=’dosomething’slot/slot這是一個復用的組件,點擊他{{theValue}}/button”, methods: { dosomething: function () { this/guide/componentsponent(“myTemplate”, { //ponent自帶name屬性。大概樣子是這樣的,div id=”app” my-template/my-template /div script Vueponent(“myTemplate”, { template: ‘ulli{{b}}/limy-template v-if=”a” :a=”aponent(“myTemplate”, { template: ‘div1/div’ + ‘div2/div’, }) 非片斷實例:Vue/guide/components/guide/components.html#u5185_u8054_u6A21_u677F以上所述是小編給大家介紹的Vuejs第十三篇之組件——雜項,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184826.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-26 05:02
下一篇 2024-11-26 05:02

相關推薦

  • 使用Vue實現前端AES加密並輸出為十六進制的方法

    在前端開發中,數據傳輸的安全性問題十分重要,其中一種保護數據安全的方式是加密。本文將會介紹如何使用Vue框架實現前端AES加密並將加密結果輸出為十六進制。 一、AES加密介紹 AE…

    編程 2025-04-29
  • Python Web開發第三方庫

    本文將介紹Python Web開發中的第三方庫,包括但不限於Flask、Django、Bottle等,並討論它們的優缺點和應用場景。 一、Flask Flask是一款輕量級的Web…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • Web程序和桌面程序的區別

    Web程序和桌面程序都是進行軟件開發的方式,但是它們之間存在很大的區別。本文將從多角度進行闡述。 一、運行方式 Web程序運行於互聯網上,用戶可以通過使用瀏覽器來訪問它。而桌面程序…

    編程 2025-04-29
  • Python操作Web頁面

    本文將從多個方面詳細介紹Python操作Web頁面的技巧、方法和注意事項。 一、安裝必要的庫 在Python中操作Web頁面,需要用到一些第三方庫。 pip install req…

    編程 2025-04-28
  • 如何使用WebAuth保護Web應用

    WebAuth是用於Web應用程序的一種身份驗證技術,可以提高應用程序的安全性,防止未經授權的用戶訪問應用程序。本文將介紹如何使用WebAuth來保護您的Web應用程序。 一、什麼…

    編程 2025-04-28
  • Python編寫Web程序指南

    本文將從多個方面詳細闡述使用Python編寫Web程序,並提供具有可行性的解決方法。 一、Web框架的選擇 Web框架對Web程序的開發效率和可維護性有着重要的影響,Python中…

    編程 2025-04-28
  • Vue3的vue-resource使用教程

    本文將從以下幾個方面詳細闡述Vue3如何使用vue-resource。 一、安裝Vue3和vue-resource 在使用vue-resource前,我們需要先安裝Vue3和vue…

    編程 2025-04-27
  • 有哪些Python軟件可以用來構建Web應用

    Python語言是一種膠水語言,可以和多種語言以及系統進行交互,廣泛應用於多個領域。在Web應用開發領域,Python是一個功能強大的語言,在Python社區中有許多優秀的Web應…

    編程 2025-04-27
  • ThinkPHP6 + Vue.js: 不使用Fetch的數據請求方法

    本文將介紹如何在ThinkPHP6和Vue.js中進行數據請求,同時避免使用Fetch函數。 一、AJAX:XMLHttpRequest的基礎使用 在進行數據請求時,最基礎的方式就…

    編程 2025-04-27

發表回復

登錄後才能評論