站長資訊網
        最全最豐富的資訊網站

        Vue.js中使用無狀態組件的方法介紹

        Vue.js中使用無狀態組件的方法介紹

        在本文中,您將了解功能組件,并了解如何在Vue中的工作流中使用無狀態組件。Vue應用程序狀態是一個確定組件行為的對象。Vue應用程序狀態指示組件如何呈現或如何動態。

        在你開始之前

        你需要在你的電腦:

        node.js 10.x及以上版本已安裝。通過在終端/命令提示符下運行以下命令,可以驗證是否具有此版本的node.js:

        node -v
        • Visual Studio代碼編輯器(或類似的代碼編輯器)

        • 在您的計算機上全局安裝Vue的最新版本

        • 在您的機器上安裝了Vue CLI 3.0

        要做到這一點,首先卸載舊的CLI版本:

        npm uninstall -g vue-cli

        接下來,安裝一個新的:

        npm install -g @vue/cli
        • 在這里下載一個Vue入門項目

        • 解壓下載的項目

        • 導航到解壓縮的文件,并運行命令,以保持所有的依賴關系最新:

        npm install

        引言:什么是狀態和實例?

        Vue應用程序狀態是一個確定組件行為的對象。Vue應用程序狀態指示組件如何呈現或如何動態。

        同時,vue實例是一個viewmodel,它包含一些選項,包括表示元素的模板、要裝入的元素、方法和初始化時的生命周期掛鉤。

        Vue組件

        js中的組件通常是被動的:在vue.js中,數據對象可以有很多選項用于概念、計算屬性、方法和觀察程序。此外,數據對象會在數據值更改時重新呈現。

        相反,功能組件不保持狀態。

        功能組件

        從本質上講,函數組件是具有自己的組件的函數。功能組件沒有狀態或實例,因為它們不保存或跟蹤狀態。此外,您不能在功能組件中訪問構造。

        功能組件是為了表示而創建的。Vue.js中的功能組件與React.js中的類似。在Vue中,開發人員可以通過傳遞上下文輕松地使用功能組件直接構建整潔的組件。

        語法功能組件

        從官方文檔來看,功能組件是這樣的:

        Vue.component('my-component', {   functional: true,   // Props are optional   props: {     // ...   },   // To compensate for the lack of an instance,   // we are now provided a 2nd context argument.   render: function (createElement, context) {     // ...   } })

        創建功能組件

        創建功能組件時要記住的一個關鍵準則是功能屬性。函數屬性在組件的模板部分或腳本部分中指定。模板部分語法如下所示:

        <template functional>   <div> <h1> hello world</h1>   </div> </template>

        你可以像這樣指定腳本的屬性:

        export default {   functional: true,   render(createElement) {     return createElement(       "button", 'Click me'     );   } };

        為什么功能組件很重要?

        功能組件可以快速執行,因為它們沒有狀態,并且在數據值發生更改時,不會經歷相同的初始化和重新呈現過程。

        大多數情況下,功能組件對于表示或顯示循環項非常有用。

        演示

        在這個介紹性的演示中,您將看到帶有Vue模板的單頁面組件類型演示和功能組件的呈現函數類型演示。

        單頁功能組件

        打開test.vue文件并將下面的代碼塊復制到該文件中:

        <template functional>   <div>     <p v-for="brand in props.brands" :key="brand">{{brand}} </p>   </div> </template> <script>  export default {   functional: true,   name: 'Test',   props: {     brands: Array   } } </script>

        腳本和模板中的功能指示器顯示這是一個功能組件。注意,仍然可以傳遞道具——它們是在功能組件中可以傳遞的惟一數據值。

        暫時的數據道具持有也可以循環通過。

        打開您的app.vue文件,將下面的代碼塊復制到其中:

        <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <Test       :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']">     </Test>   </div> </template> <script> import Test from './components/Test.vue' export default {   name: 'app',   components: {     Test   } } </script> <style> #app {   font-family: 'Avenir', Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

        這里,您將看到props引用與冒號一起使用。

        使用以下命令在dev服務器中運行應用程序:

        npm run serve

        你的瀏覽器的結果應該是這樣的:

        Vue.js中使用無狀態組件的方法介紹

        呈現函數方法

        功能組件也可以包含呈現函數。

        開發人員使用呈現函數來創建他們自己的虛擬DOM,而不使用Vue模板。

        使用渲染函數在cars列表下創建一個新按鈕。在你的項目文件夾中創建一個名為example.js的新文件,并將下面的代碼塊復制到文件中:

        export default {     functional: true,     render(createElement, { children }) {       return createElement("button", children);     }   };

        這將在功能組件中創建一個呈現函數來顯示按鈕,并使用元素上的子節點作為按鈕文本。

        打開app.vue文件,將下面的代碼塊復制到文件中:

        <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <Test       :brands ="['Tesla', 'Bentley', 'Ferrari', 'Ford']">     </Test>     <Example>      Find More Cars     </Example>   </div> </template> <script> import Test from './components/Test.vue' import Example from './Example' export default {   name: 'app',   components: {     Test, Example   } } </script> <style> #app {   font-family: 'Avenir', Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

        如果再次運行該應用程序,您將看到find more cars(查找

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 欧美激情精品久久久久久久九九九| 久久国产精品77777| 四虎成人精品国产永久免费无码| 欧美日韩在线精品一区二区三区激情综合 | 97久久超碰国产精品旧版| 欧美亚洲综合免费精品高清在线观看 | 亚洲精品亚洲人成在线观看| 国产精品美女久久久久AV福利| 亚洲精品和日本精品| 国产精品日韩欧美久久综合| 最新精品国偷自产在线| 精品国产亚洲一区二区在线观看 | 亚洲精品无码永久中文字幕| 精品精品国产理论在线观看| 久久99精品久久久久久久久久| 2021年精品国产福利在线| 99在线精品视频观看免费| 中文字幕成人精品久久不卡| 国产精品日本欧美一区二区| 成人精品视频99在线观看免费| 蜜臀AV无码国产精品色午夜麻豆 | 中文字幕无码精品亚洲资源网久久| 国产精品自拍一区| 99香蕉国产精品偷在线观看| 久久久久久一区国产精品| 国产精品人人做人人爽人人添| 欧美精品v国产精品v日韩精品| 国产精品二区观看| 99久久99久久精品国产| 91精品国产麻豆国产自产在线| 亚洲AV无码成人网站久久精品大| 国产午夜亚洲精品理论片不卡| 国产亚洲精品资源在线26u| 精品无码国产自产拍在线观看| 蜜臀精品国产高清在线观看| 精品人妻伦九区久久AAA片69| 国产精品v欧美精品v日韩精品| 一本久久a久久精品综合香蕉| 91精品国产人成网站| 99热热久久这里只有精品68 | 国产福利精品视频自拍|