vue有幾大組件
vue有4大元件:1、全域元件,用「app.component(...)」方法來註冊全域元件,全域元件可在應用的任何元件模板中使用。 2、局部元件,是在一個(父)元件中的「components」選項中註冊的元件。 3.動態元件,指根據給屬性is綁定值的不同來渲染不同名稱的元件。 4.非同步元件,在載入頁面時並不立即渲染,而是要等帶一些業務邏輯完成後,才會執行元件內的邏輯和渲染到頁面上。
本教學操作環境:windows7系統、vue3版,DELL G3電腦。
Vue 的元件本質上是一個具有預先定義選項的實例,我們使用小型的、獨立和通常可重複使用的元件,透過層層拼裝,最終形成了一個完整的頁面。
元件必須先註冊以便Vue 應用程式能夠識別,有兩種元件的註冊類型:
<ul>#全域元件
(在根元件中)使用方法app.component('component-Name', {})
來註冊全域元件,全域註冊的元件可以在應用程式中的任何元件的模板中使用。 (學習影片分享:vuejs入門教學、程式設計基礎影片)
其中第一個參數時元件名,建議遵循W3C 規格中的自訂元件名稱(避免與目前以及未來的HTML 元素發生衝突):字母全小寫且必須包含一個連字號。第二個參數是組件的配置選項。
const app = Vue.createApp(); app.component('my-component', { template: `<h1>Hello World!</h1>` }); const vm = app.mount('#app')
⚠️ 全域元件雖然可以方便地在各種元件中使用(包括各自的內部),但是這可能造成建置專案時體積增大,使用者下載 JavaScript 的無謂增加。
需要在app.mount('#app')
應用掛載到DOM 之前進行全域元件的註冊
局部元件
在一個(父)元件中元件的components
選項中註冊的元件。
這些子元件透過一個普通的JavaScript 物件來定義,其接收的參數和全域元件一樣,但是它們只能在該父元件中使用,稱為局部組件。
對於 components
物件中的每個 property 來說,其 property 名就是自訂元素的名字,其 property 值就是這個元件的選項物件。
const ComponentA = { /* ... */ } const ComponentB = { /* ... */ } const ComponentC = { /* ... */ }
// 然后在父组件的 `components` 选项中定义你想要使用的组件 const app = Vue.createApp({ components: { 'component-a': ComponentA, 'component-b': ComponentB } })
動態元件
動態元件指根據給屬性 is綁定值的不同來渲染不同名稱的元件。
內建的標籤<component :is="componentName />"
用以動態明確不同的元件,透過控制綁定在屬性is
上的參數值,即可顯示對應的同名元件。
屬性is
可以是:
有時候為了在切換時,保存動態元件的狀態,例如元件中的輸入框的值,可以用標籤<keep-alive></keep-alive> ;
包裹動態元件。
屬性is
也可以用來解決HTML 元素嵌套的規則限制,將它套用到原生的HTML 標籤上,它的值就是元件名,讓原生標籤實際渲染出來的內容就是組件。
因為對於<ul>
、<ol>
、<table>
和<select>
這些元素,其內部允許放置的直接子元素是有嚴格限制的,如果嵌入其他元素會被視為無效的內容,而提升到外部造成最終渲染問題。但如果我們需要在這些元素中使用元件作為直接子元素,則可以在「合法」的子元素上使用屬性is
,指定渲染的實際內容,這時屬性is
用在原生的HTML 元素上,如<tr>
其值 需要使用vue:
作為前綴,以表示解析的實際上是一個Vue 元件
<table> <tr is="vue:blog-post-row"></tr> </table>
但以上限制只是在HTML 中直接使用Vue 模板時才會遇到,如果是在一下前進使用模板就沒有這種限制:
<ul>template: '...'
.vue
<script type="text/x-template">
异步组件
现在的大型网页往往需要异步获取不同的数据,Vue 有一个 defineAsyncComponent
方法定义异步组件,以优化应用的加载和用户体验。
异步组件在加载页面时并不立即渲染,而是要等带一些业务逻辑完成后,才会执行组件内的逻辑和渲染到页面上。
// 全局组件 app.component('async-example', Vue.defineAsyncComponent(() => { return new Promise((resolve, reject) => { resolve({ template: '<div>I am async!</div>' }) }) })) // 局部组件 import { createApp, defineAsyncComponent } from 'vue' createApp({ // ... components: { AsyncComponent: defineAsyncComponent(() => { return new Promise((resolve, reject) => { resolve({ template: '<div>I am async!</div>' }) }) }) } })
异步组件的注册和一般的同步组件类似,如果是注册全局组件,也是使用 app.component()
进行注册,不过第二个参数使用 Vue.defineAsyncComponent()
方法告诉 Vue 应用该组件是异步组件。
defineAsyncComponent()
方法的参数是一个匿名函数,而且函数是返回一个 Promise。在 Promise 内应该 resovlve({})
一个对象,其中包含了构建组件相关配置参数。只有当 Promise resolve
或 reject
才执行异步组件的处理。
以上是vue有幾大組件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

可以通過以下步驟為 Vue 按鈕添加函數:將 HTML 模板中的按鈕綁定到一個方法。在 Vue 實例中定義該方法並編寫函數邏輯。

Vue.js 中的 watch 選項允許開發者監聽特定數據的變化。當數據發生變化時,watch 會觸發一個回調函數,用於執行更新視圖或其他任務。其配置選項包括 immediate,用於指定是否立即執行回調,以及 deep,用於指定是否遞歸監聽對像或數組的更改。

Vue 多頁面開發是一種使用 Vue.js 框架構建應用程序的方法,其中應用程序被劃分為獨立的頁面:代碼維護性:將應用程序拆分為多個頁面可以使代碼更易於管理和維護。模塊化:每個頁面都可以作為獨立的模塊,便於重用和替換。路由簡單:頁面之間的導航可以通過簡單的路由配置來管理。 SEO 優化:每個頁面都有自己的 URL,這有助於搜索引擎優化。

Vue.js 返回上一頁有四種方法:$router.go(-1)$router.back()使用 <router-link to="/"> 組件window.history.back(),方法選擇取決於場景。

在 Vue.js 中引用 JS 文件的方法有三種:直接使用 <script> 標籤指定路徑;利用 mounted() 生命週期鉤子動態導入;通過 Vuex 狀態管理庫進行導入。

Vue.js 遍歷數組和對像有三種常見方法:v-for 指令用於遍歷每個元素並渲染模板;v-bind 指令可與 v-for 一起使用,為每個元素動態設置屬性值;.map 方法可將數組元素轉換為新數組。

Vue 中 div 元素跳轉的方法有兩種:使用 Vue Router,添加 router-link 組件。添加 @click 事件監聽器,調用 this.$router.push() 方法跳轉。