一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - Vue 3.0中jsx語法的使用

Vue 3.0中jsx語法的使用

2021-11-18 15:22Mondo JavaScript

這篇文章主要介紹了Vue 3.0 中 jsx 語法使用,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下

Vue 3.0 正式發布了,喜大普奔。新的語法又要學習一陣陣,不過需要在生產環境下大面積使用,可能需要等到它的周邊工具:vuex,vue-router 等等全部升級完畢。

Vue 3.0 中尤大使用的了新的編譯工具 vite,革了 webpack 的命。嘗試看了下文檔,發現支持 jsx 語法,由于這段時間都是在使用 react 來開發項目,jsx 完全不同的體驗,更加的純粹與靈活。

項目創建

npm init vite-app vite-vue
cd vite-vue
npm install
npm run dev

我們發現創建的目錄解構很簡單

Vue 3.0中jsx語法的使用

使用 JSX

Vue 3.0 直接支持 jsx 語法,新建 demo.jsx

export default function JsxTemp() {
 return <div>
 <h3>jsx</h3>
 </div>
}

引入到 App.vue 中可以完整顯示

Vue 3.0中jsx語法的使用

再嘗試綁定數據

import { ref } from "vue"

export default function JsxTemp() {
 const state = ref(0)
 const onClick = () => {
 state.value++;
 console.log(state.value)
 }
 return <div>
 <h3>state: {state.value}</h3>
 <button onClick={onClick}>點擊</button>
 </div>
}

我們發現沒有像我們想的那樣 state 數一直自增

Vue 3.0中jsx語法的使用

這是因為我們在 Vue 3.0 中需要使用 defineComponent 包裹來使其變成一個雙向綁定數據的組件
參數 為 setup function | object

import { defineComponent, ref } from "vue"

export default defineComponent(() => {
 const state = ref(0)
 const onClick = () => {
 state.value++;
 console.log(state.value)
 }
 return () => (
 <div>
  <h3>state: {state.value}</h3>
  <button onClick={onClick}>點擊</button>
 </div>
 )
})

可以看到現在是實時點擊實現自增效果

Vue 3.0中jsx語法的使用

組件通信

組件間傳值通信該怎么來實現呢

我們需要改用對象的方式來傳入通信數據

App.vue
<JsxTemp site="imondo.cn" @onGet="onGet" />
export default {
 ...
 methods: {
 onGet(e) {
  console.log("emit:", e)
 }
 }
}
...
export default defineComponent({
 props: {
 site: String
 },
 setup({ site }) {
 const state = ref(0)
 const onClick = () => {
  state.value++;
  console.log(state.value)
  context.emit("onGet", "Mondo");
 }
 return () => (
  <div>
  <h1>props: {site}</h1>
  <h3>state: {state.value}</h3>
  <button onClick={onClick}>點擊</button>
  </div>
 )
 }
})

實現效果

Vue 3.0中jsx語法的使用

總結

我們嘗試了在 Vue 3.0 中如何使用 jsx ,這有助于我們在項目中更靈活的公用我們組件,由此也可以區分我們在項目中使用的方式

  • 無狀態組件 我們完全可以使用純函數來展示
  • 有狀態組件 存在邏輯與數據綁定的組件則需要使用 Vue 3.0 提供的一系列組件 API

以上就是Vue 3.0 中 jsx 語法使用的詳細內容,更多關于Vue 3.0 jsx 語法的資料請關注服務器之家其它相關文章!

原文鏈接:https://segmentfault.com/a/1190000038156128?utm_source=tuicool&utm_medium=referral

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91在线视频播放 | 车上小婕子系列辣文小说 | 国产思妍小仙女一二区 | 免费人成在线观看 | 国产福利视频一区二区微拍视频 | 草莓香蕉绿巨人丝瓜榴莲18 | 精品无人区乱码1区2区3区免费 | 秀逼逼 | 国产小视频在线播放 | 蜜色影院 | 欧美亚洲国产一区二区三区 | 亚洲精品www久久久久久久软件 | 性满足久久久久久久久 | 国内精品中文字幕 | 公翁的舌尖研磨她的花蒂小说 | 99久久九九 | 护士xxxx| 热热影院 | 久久精品亚洲牛牛影视 | 国产一区二区精品久 | 摄像头东北对白清晰 | 欧美日本一区视频免费 | 日韩欧美一区二区三区免费观看 | 国产精品日韩欧美一区二区三区 | 把美女屁股眼扒开图片 | 女教师巨大乳孔中文字幕免费 | 亚洲AV午夜精品麻豆AV | 亚洲人成毛片线播放 | 扒开放荡老师裙子猛烈的进入 | 色综色天天综合网 | 亚洲 色 欧美 爱 视频 日韩 | 国产精品国产精品国产三级普 | dyav午夜片 | 麻豆小视频在线观看 | 国产在线精品亚洲第一区香蕉 | 911精品国产亚洲日本美国韩国 | 精品国产品香蕉在线观看75 | 成人1234 | 日本免费一区二区三区四区五六区 | 免费一级生活片 | 欧美日韩亚洲一区二区三区在线观看 |