日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue3 高级语法(一)—— h函数、jsx

發布時間:2024/7/5 vue 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue3 高级语法(一)—— h函数、jsx 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、認識h函數

Vue推薦在絕大數情況下使用模板來創建你的HTML,然后一些特殊的場景,你真的需要JavaScript的完全編程的能力,這個時候你可以使用渲染函數 ,它比模板更接近編譯器;

前面我們講解過VNode和VDOM的改變:

  • Vue在生成真實的DOM之前,會將我們的節點轉換成VNode,而VNode組合在一起形成一顆樹結構,就是虛 擬DOM(VDOM);
  • 事實上,我們之前編寫的 template 中的HTML 最終也是使用渲染函數生成對應的VNode;
  • 那么,如果你想充分的利用JavaScript的編程能力,我們可以自己來編寫 createVNode 函數,生成對應的VNode;

那么我們應該怎么來做呢?使用 h()函數:

  • h() 函數是一個用于創建 vnode 的一個函數;
  • 其實更準確的命名是 createVNode() 函數,但是為了簡便在Vue將之簡化為 h() 函數;

二、h()函數 如何使用呢?

h()函數 如何使用呢?它接受三個參數:



注意事項:

  • 如果沒有props,那么通常可以將children作為第二個參數傳入;
  • 如果會產生歧義,可以將null作為第二個參數傳入,將children作為第三個參數傳入;

三、h函數的基本使用

h函數可以在兩個地方使用:

  • render函數選項中;

  • setup函數選項中(setup本身需要是一個函數類型,所有需要在箭頭函數中再返回h函數創建的VNode);

render函數實現計數器

<script> import {h} from "vue";export default {data() {return {counter: 0}},render() {return h('div', {class: 'app'}, [h('h2', null, `當前計數:${this.counter}`),h('button', {onClick: () => this.counter++}, '+1'),h('button', {onClick: () => this.counter--}, '-1')])} } </script><style scoped> </style>

setup函數實現計數器

<script> import {h, ref} from "vue";export default {// data() {// return {// counter: 0// }// },setup() {const counter = ref(0)return () => {return h('div', {class: 'app'}, [h('h2', null, `當前計數:${counter.value}`),h('button', {onClick: () => counter.value++}, '+1'),h('button', {onClick: () => counter.value--}, '-1')])}} } </script><style scoped> </style>

四、函數組件和插槽的使用


Home.vue:

<script> import {h, ref} from "vue"; import HelloWorld from "./HelloWorld.vue";export default {render() {return h(HelloWorld, null, {default: props => h('span', null, `app傳到HelloWorld組件中的內容: ${props.name}`)})} } </script><style scoped> </style>

HelloWorld.vue:

<script> import {h} from "vue";export default {render() {return h('div', null, [h('h2', null, 'Hello World!'),this.$slots.default ? this.$slots.default({name: 'zep'}) : h('span', null, '我是hellowrold插槽的默認值')])} } </script><style scoped></style>

五、jsx的babel配置

如果我們希望在項目中使用jsx,那么我們需要添加對jsx的支持:

  • jsx我們通常會通過Babel來進行轉換(React編寫的jsx就是通過babel轉換的);
  • 對于Vue來說,我們只需要在Babel中配置對應的插件即可;

注意:新版本的vue-cli中不需要進行安裝和配置操作了!
安裝Babel支持Vue的jsx插件:

npm install @vue/babel-plugin-jsx -D

在babel.config.js配置文件中配置插件:

六、jsx計數器案例

<script> import {ref} from "vue";export default {setup() {const counter = ref(0)const increment = () => {counter.value++}const decrement = () => {counter.value--}return {counter,increment,decrement}},render() {return (<div><div>當前計數: {this.counter}</div><button onClick={this.increment}>+1</button><button onClick={this.decrement}>-1</button></div>)} } </script><style scoped> </style>

七、jsx組件的使用

總結

以上是生活随笔為你收集整理的Vue3 高级语法(一)—— h函数、jsx的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品在线看| 日本不卡一二 | 最新视频在线观看 | 中国丰满熟妇xxxx性 | 成人黄色短视频在线观看 | 欧美色综合天天久久综合精品 | 粉嫩欧美一区二区三区 | 国产一区二区三区精品在线 | xxxxx亚洲 | 日本熟妇色xxxxx日本免费看 | 激情二区| 日本亚洲最大的色成网站www | 成人自拍在线 | 美女黄色影院 | 亚洲黄色中文字幕 | 91亚洲一线产区二线产区 | 精品一区二区在线播放 | 影音先锋在线视频观看 | 男人天堂一区 | 精品国产av一区二区 | 国产精品一二三区在线观看 | 国产av无码专区亚洲av毛网站 | 国产高清免费在线播放 | www.99精品 | 91av福利视频 | 福利亚洲| 国产精品你懂的 | 91欧美大片 | 怡红院男人的天堂 | 成熟妇人a片免费看网站 | 黄色免费在线视频 | 国产精品久久久久久久久免费看 | 欧美色图一区二区三区 | 总裁憋尿呻吟双腿大开憋尿 | 国产20页 | 亚洲老女人 | www国产亚洲精品久久网站 | 欧美毛片免费看 | 日本三级2019| 亚洲国产一区二区三区a毛片 | 亚洲综合精品国产一区二区三区 | 在线色网 | 久热精品视频在线观看 | 久久久久亚洲av无码专区桃色 | 91精品国产一区二区三竹菊影视 | 国产精品永久免费视频 | 人妻少妇无码精品视频区 | 成人毛片一区二区三区 | 88av网站| 国产精品毛片一区二区在线看 | 操操日| 欧美性受xxxx黑人 | 91欧美日韩国产 | 国产一级黄色录像 | 国产精品美女久久久网av | 无码人妻精品一区二区三应用大全 | 欧美日韩精品二区 | 久久av中文字幕 | 扒下小娇妻的内裤打屁股 | 97精品人妻一区二区三区香蕉 | 日本久久爱 | 国产色视频一区二区三区qq号 | 桃花色综合影院 | 免费黄色网址在线观看 | 亚洲高清久久 | 久久伊人一区二区 | 日本中文在线视频 | 国产高清成人久久 | 99精品区| 久久久久久久久久网站 | 自拍 亚洲 欧美 | 久久一区二区三 | 善良的老师伦理bd中字 | 国产在线看一区 | 欧美性生交xxxxx | 国产精品毛片一区二区在线看 | 国产亚洲精品久久久 | 久99热 | 欧美成人二区 | 国产午夜精品无码一区二区 | 国产99在线播放 | 中文字幕乱码在线人视频 | 日韩一区二区影视 | 日本久久久网站 | 国产一区二区三区四区视频 | 四虎网址在线观看 | 高清国产一区二区三区四区五区 | 亚洲第一视频区 | 国产欧美精品一区二区色综合 | 最新视频 - 88av | 性色av蜜臀av色欲av | 国产精品色视频 | 91成人免费在线观看视频 | 国产叼嘿视频在线观看 | 好吊日在线观看 | 影音先锋色小姐 | 在办公室被c到呻吟的动态图 | 水蜜桃亚洲精品 | 日韩av不卡在线观看 |