首頁 web前端 js教程 Vue.js中的功能組件的理解

Vue.js中的功能組件的理解

Apr 20, 2019 am 09:53 AM
vue.js

Vue中的功能元件是一個採用渲染上下文並傳回渲染HTML的元件,它沒有實例。建立功能元件必須使用functional: true屬性以及渲染功能來建立物件

功能元件可允許以簡潔的方式來透過傳遞上下文建立簡單的元件,使它們變得非常簡單而大受歡迎,接下來將要在文章中分享的是Vue.js中的功能組件,具有一定的參考價值,希望對大家有幫助。

Vue.js中的功能組件的理解

【推薦課程:Vue.js教學

什麼是功能元件

功能元件可以看作是與元件相關的功能,也就是說它是一個採用渲染上下文並傳回渲染HTML的元件。它沒有實例,因此也就沒有this。

建立功能元件

要建立一個功能元件,必須使用functional: true屬性以及渲染功能來建立物件。在下面的範例中將建立一個FunctionalButton元件的範例:

export default {
  functional: true,
  render(createElement, context) {
    return createElement('button', 'Click me');
  }};
登入後複製

渲染上下文

context在render函數上看到的參數稱為渲染上下文。它是一個包含以下屬性的物件:

props:提供props 的物件

children :VNode 子節點的陣列

slots:函數傳回slot物件

parent:對父元件的參考

listeners:一個包含了元件上所註冊的v-on 偵聽器的物件。這只是一個指向 data.on 的別名。

injections:如果使用了 inject 選項, 則該物件包含了應當被注入的屬性。

data: 包含所有先前屬性的物件

觸發事件

#由於功能元件沒有實例,事件偵聽器來自context.listeners屬性上的父級,所以可用以下程式碼來實作click事件

範例:假設有App.vue元件,可以在其中匯入FunctionalButton.js以在其範本中使用它

<template>
  <FunctionalButton>
    Click me
  </FunctionalButton></template>
登入後複製
export default {
  functional: true,
  render(createElement, { props, listeners, children }) {
    return createElement(
      &#39;button&#39;,
      {
        attrs: props,
        on: {
          click: listeners.click
        }
      },
      children
    );
  }};
登入後複製

總結:以上就是本篇文章的全部內容了,希望對大家有幫助。

以上是Vue.js中的功能組件的理解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

深入探討vite是怎麼解析.env檔的 深入探討vite是怎麼解析.env檔的 Jan 24, 2023 am 05:30 AM

使用vue框架開發前端專案時,我們部署的時候都會部署多套環境,往往開發、測試以及線上環境呼叫的介面網域都是不一樣的。如何能做到區分呢?那就是使用環境變數和模式。

圖文詳解如何在Vue專案中整合Ace程式碼編輯器 圖文詳解如何在Vue專案中整合Ace程式碼編輯器 Apr 24, 2023 am 10:52 AM

Ace 是一個用 JavaScript 寫的可嵌入程式碼編輯器。它與 Sublime、Vim 和 TextMate 等原生編輯器的功能和效能相符。它可以很容易地嵌入到任何網頁和 JavaScript 應用程式中。 Ace 被維護為Cloud9 IDE的主要編輯器 ,並且是 Mozilla Skywriter (Bespin) 專案的繼承者。

vue中組件化和模組化有什麼區別 vue中組件化和模組化有什麼區別 Dec 15, 2022 pm 12:54 PM

組件化和模組化的區別:模組化是從程式碼邏輯的角度進行劃分的;方便程式碼分層開發,確保每個每個功能模組的職能一致。元件化是從UI介面的角度進行規劃;前端的元件化,方便UI元件的重複使用。

探討如何在Vue3中撰寫單元測試 探討如何在Vue3中撰寫單元測試 Apr 25, 2023 pm 07:41 PM

在當今前端開發中,Vue.js 已經成為了一個非常流行的框架。隨著 Vue.js 的不斷發展,單元測試變得越來越重要。今天,我們將探討如何在 Vue.js 3 中編寫單元測試,並提供一些最佳實踐和常見的問題及解決方案。

Vue中JSX語法和模板語法的簡單比較(優劣勢分析) Vue中JSX語法和模板語法的簡單比較(優劣勢分析) Mar 23, 2023 pm 07:53 PM

在Vue.js中,開發人員可以使用兩種不同的語法來建立使用者介面:JSX語法和範本語法。這兩種文法各有優劣,以下就來探討它們的差異和優劣勢。

深入聊聊vue3中的reactive() 深入聊聊vue3中的reactive() Jan 06, 2023 pm 09:21 PM

前言:在vue3的開發中,reactive是提供實現響應式資料的方法。日常開發這個是使用頻率很高的api。這篇文章筆者就來探索其內部運作機制。

怎麼查詢目前vue的版本 怎麼查詢目前vue的版本 Dec 19, 2022 pm 04:55 PM

查詢目前vue版本的兩種方法:1、在cmd控制台內,執行「npm list vue」指令查詢版本,輸出結果就是vue的版本號資訊;2、在專案中找到並開啟package.json文件,查找「dependencies」項目即可看到vue的版本資訊。

淺析vue怎麼實現檔案切片上傳 淺析vue怎麼實現檔案切片上傳 Mar 24, 2023 pm 07:40 PM

在實際開發專案過程中有時候需要上傳比較大的文件,然後呢,上傳的時候相對來說就會慢一些,so,後台可能會要求前端進行文件切片上傳,很簡單哈,就是把比如說1個G的檔案流切割成若干個小的檔案流,然後分別請求介面傳遞這個小的檔案流。

See all articles