最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue用h()函數創(chuàng)建Vnodes的實現

 更新時間:2024年01月08日 11:10:32   作者:weixin79893765432...  
Vue提供了一個h()函數用于創(chuàng)建vnodes,本文就來介紹一下vue用h()函數創(chuàng)建Vnodes的實現,具有一定的參考價值,感興趣的可以了解一下

前言

Vue 提供了一個 h() 函數用于創(chuàng)建 vnodes。

h() 是 hyperscript 的簡稱——意思是“能生成 HTML (超文本標記語言) 的 JavaScript”。

const vnode = h(
  'div', // type
  { id: 'foo', class: 'bar' }, // props
  key: '001', // key
  [
    /* children */
  ]
)

【注意】組件樹中的 vnodes 必須是唯一的。

一、h() 函數的基本使用方式

import { h } from 'vue'

// 除了類型必填以外,其他的參數都是可選的
h('div')
h('div', { id: 'foo' })

// attribute 和 property 都能在 prop 中書寫
// Vue 會自動將它們分配到正確的位置
h('div', { class: 'bar', innerHTML: 'hello' })

// 像 `.prop` 和 `.attr` 這樣的的屬性修飾符
// 可以分別通過 `.` 和 `^` 前綴來添加
h('div', { '.name': 'some-name', '^width': '100' })

// 類與樣式可以像在模板中一樣
// 用數組或對象的形式書寫
h('div', { class: [foo, { bar }], style: { color: 'red' } })

// 事件監(jiān)聽器應以 onXxx 的形式書寫
h('div', { onClick: () => {} })

// children 可以是一個字符串
h('div', { id: 'foo' }, 'hello')

// 沒有 props 時可以省略不寫
h('div', 'hello')
h('div', [h('span', 'hello')])

// children 數組可以同時包含 vnodes 與字符串
h('div', ['hello', h('span', 'hello')])

二、h() 函數的進階使用方式

1、條件渲染

h('div', [ok.value ? h('div', 'yes') : h('span', 'no')])

2、列表渲染

h(
  'ul',
  // 假設‘items'是一個具有數組值的 ref
  items.value.map(({ id, text }) => {
    return h('li', { key: id }, text)
  })
)

3、事件

h(
  'button',
  {
    onClick: (event) => {},
    // 對于事件和按鍵修飾符,可以使用 withModifiers 函數
    onDbclick: withModifiers(() => {}, ['stop'])
  },
  'click me'
)

4、使用插槽

import { h } from 'vue'

const vnode = h(
  'SelfComponent',
  // 默認插槽:
  // <div><slot /></div>
  // <div>{slots.default()}</div>
  h('div', slots.default()),

  // 具名插槽
  // <div><slot name="footer" :text="message" /></div>
  // <div>{slots.footer({ text: props.message })}</div>
  h(
    'div',
    slots.footer({
      text: props.message
    })
  )
)

【參考文章】
vue 官網之“渲染函數 & JSX”

到此這篇關于vue用h()函數創(chuàng)建Vnodes的實現的文章就介紹到這了,更多相關vue h()函數創(chuàng)建Vnodes內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue基于element的區(qū)間選擇組件

    vue基于element的區(qū)間選擇組件

    這篇文章主要介紹了vue基于element的區(qū)間選擇組件,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue登錄注冊組件源碼詳解(注釋)

    vue登錄注冊組件源碼詳解(注釋)

    用戶自行開發(fā)了一個Vue登錄注冊組件,采用Bootstrap表單樣式,簡單實現防短信轟炸功能,但因接口存在bug僅模擬了登錄注冊流程
    2025-07-07
  • 解決vue中post方式提交數據后臺無法接收的問題

    解決vue中post方式提交數據后臺無法接收的問題

    今天小編就為大家分享一篇解決vue中post方式提交數據后臺無法接收的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue使用Canvas生成隨機大小且不重疊圓

    Vue使用Canvas生成隨機大小且不重疊圓

    Canvas是HTML5中新增的元素,專門用來繪制圖形,下面這篇文章主要給大家介紹了關于Vue使用Canvas生成隨機大小且不重疊圓的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • vue手寫<RouterLink/>組件實現demo詳解

    vue手寫<RouterLink/>組件實現demo詳解

    這篇文章主要為大家介紹了vue手寫<RouterLink/>組件實現demo詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • 淺析Proxy如何實現Vue響應式

    淺析Proxy如何實現Vue響應式

    這篇文章主要是來和大家探討一下,Vue的響應式系統僅僅是一個Proxy嗎,本文將圍繞此問題探索一下Proxy是如何實現Vue響應式的,感興趣的小伙伴可以了解一下
    2023-08-08
  • vue.js集成echarts時遇到的一些問題總結

    vue.js集成echarts時遇到的一些問題總結

    這篇文章主要給大家總結介紹了關于vue.js集成echarts遇到的一些問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • vue項目基于WebRTC實現一對一音視頻通話

    vue項目基于WebRTC實現一對一音視頻通話

    這篇文章主要介紹了vue項目基于WebRTC實現一對一音視頻通話效果,實現代碼分為前端和后端兩部分代碼,需要的朋友可以參考下
    2024-05-05
  • Vue實現簡單跑馬燈特效

    Vue實現簡單跑馬燈特效

    這篇文章主要為大家詳細介紹了Vue實現簡單跑馬燈特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Vue.js實現列表清單的操作方法

    Vue.js實現列表清單的操作方法

    Vue.js在設計上采用MVVM模式,當View視圖層發(fā)生變化時,會自動更新到ViewModel.接下來通過本文給大家分享Vue.js實現列表清單的操作方法,需要的朋友參考下吧
    2017-11-11

最新評論

古浪县| 中阳县| 霞浦县| 仪征市| 正宁县| 林甸县| 黄骅市| 晋宁县| 蓬莱市| 昌乐县| 汶川县| 东乡族自治县| 黄冈市| 麻栗坡县| 马边| 巩义市| 温州市| 新竹县| 汤原县| 康马县| 许昌县| 江源县| 密山市| 大埔区| 抚宁县| 彩票| 翁牛特旗| 前郭尔| 拉萨市| 泰州市| 阿坝| 曲阜市| 肇东市| 屏东县| 石渠县| 哈巴河县| 射阳县| 陆河县| 巴马| 三亚市| 鄄城县|