成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

匯總在vue中寫jsx的方式

3403771864 / 506人閱讀

  學(xué)習(xí)就是在不斷的總結(jié),我們今天說的就是匯總在vue中寫jsx的方式。

  版本

  本文版本配置 vue: 2.7.2 vue-cli: ~4.5.18;本文代碼github倉庫地址

  render函數(shù)

  render函數(shù)和vue中的template是互斥的,template最終是要編譯成virtual Dom的,但我們要知道render函數(shù)可以更直接構(gòu)建virtual Dom; virtual Dom由樹狀的vnode構(gòu)成,h函數(shù)可以構(gòu)建vnode。

  vue templates are compiled into virtual DOM render functions. vue also provides APIs that allow us to skip the template compilation step and directly author render functions

  If both render and template are present in a component, render will take higher priority.

  假如當(dāng)render和template同時(shí)出現(xiàn),這時(shí)候render會(huì)有更高的權(quán)限(是不是和vue2中說法不一致)。

  其實(shí)更加直接說就是vue3 render函數(shù)

  jsx/tsx

  jsx類似于h函數(shù),比較直接使用javascript來構(gòu)建DOM,但我們要知道的是jsx語法需要去編譯處理,有的腳手架可能有預(yù)先配置,有的沒有。

  在typescript下需要編寫tsx

  使用jsx的幾種方式

  使用js對象注冊component

  When not using a build step, a Vue component can be >defined as a plain JavaScript object containing >Vue-specific options:

  vue組件也可以直接使用普通的js對象來注冊

   // 定義一個(gè)js文件,導(dǎo)出組件對象
  // componentObject.js
  export default {
  data() {
  return {
  msg: 'hello'
  }
  },
  created() {
  setTimeout(() => {
  this.msg = 'hello world'
  }, 1000);
  },
  render() {
  return <h1>{this.msg}</h1>
  }
  }

 

  <script>
  import componentObject from './../components/componentObject.js'
  export default {
  components: {
  jsxComponent
  }
  };
  </script>

  使用.vue文件

  這里如果template和render函數(shù)如果同時(shí)指定的話,會(huì)用template覆蓋掉render,顯然是template優(yōu)先級(jí)更高,跟文檔上的render優(yōu)先級(jí)更高不一樣


  // sfcJsx.vue
  <!-- <template>
  <div>test</div>
  </template> -->
  <script>
  export default {
  data() {
  return {
  msg: 'i am sfc jsx'
  }
  },
  created() {
  setTimeout(() => {
  this.msg = 'i am sfc jsxxxx'
  }, 1000);
  },
  render() {
  return <h1>{this.msg}</h1>
  }
  }
  </script>

  vue2.7在.vue文件中結(jié)合compositionApi和jsx

  目前在setup中return jsx會(huì)報(bào)錯(cuò),目測是loader沒有支持(有知道解決辦法的老師傅也可以告訴我一下..),只能在setup使用compositionApi再加上render函數(shù)里寫jsx


  // sfcJsx.vue
  <script>
  import { ref } from 'vue';
  export default {
  setup() {
  const count = ref(0);
  setTimeout(() => {
  count.value = 12
  }, 1000);
  return {
  count
  }
  },
  render(h) {
  return (
  <h1>{this.count ? <span>11</span>: <span>22</span>}</h1>
  )
  }
  }
  </script>

  在vue中寫jsx的方式已經(jīng)講解完畢,您學(xué)會(huì)了多少?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/127986.html

相關(guān)文章

  • 匯總遇到問題

    摘要:在中看到文件加了,文件加了,緩存沒問題。再次訪問后端接口,接口,數(shù)據(jù)正常,問題修復(fù)。在接口返回?cái)?shù)據(jù)量很大的時(shí)候,會(huì)遇到這種問題。 1.vue項(xiàng)目打包發(fā)測后,訪問項(xiàng)目鏈接,功能未生效,刷新后才生效。 首先,查看兩次訪問,獲取到的文件是否相同。查看network,兩次訪問請求如下,可見兩次獲取到的app.js不是同一個(gè)文件。開始認(rèn)為是瀏覽器緩存問題,查看如下資料知悉跟瀏覽器緩存無關(guān)。(瀏覽...

    whlong 評(píng)論0 收藏0
  • 匯總遇到問題

    摘要:在中看到文件加了,文件加了,緩存沒問題。再次訪問后端接口,接口,數(shù)據(jù)正常,問題修復(fù)。在接口返回?cái)?shù)據(jù)量很大的時(shí)候,會(huì)遇到這種問題。 1.vue項(xiàng)目打包發(fā)測后,訪問項(xiàng)目鏈接,功能未生效,刷新后才生效。 首先,查看兩次訪問,獲取到的文件是否相同。查看network,兩次訪問請求如下,可見兩次獲取到的app.js不是同一個(gè)文件。開始認(rèn)為是瀏覽器緩存問題,查看如下資料知悉跟瀏覽器緩存無關(guān)。(瀏覽...

    fai1017 評(píng)論0 收藏0
  • Vue 進(jìn)階系列(三)之Render函數(shù)原理及實(shí)現(xiàn)

    摘要:進(jìn)階系列一之響應(yīng)式原理及實(shí)現(xiàn)進(jìn)階系列二之插件原理及實(shí)現(xiàn)進(jìn)階系列三之函數(shù)原理及實(shí)現(xiàn)函數(shù)原理根據(jù)第一篇文章介紹的響應(yīng)式原理,如下圖所示。在初始化階段,本質(zhì)上發(fā)生在函數(shù)中,然后通過函數(shù)生成,根據(jù)生成。負(fù)責(zé)收集依賴,清除依賴和通知依賴。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo))showImg(https://segmentfa...

    geekidentity 評(píng)論0 收藏0
  • React:"don't fuck it up like Google did

    摘要:核心開發(fā)人員大神在開了個(gè),用來征詢社區(qū)對的建議。而且的工程師并沒有因此止步,他們在文檔中又告訴開發(fā)者,不僅僅要把寫到中,也應(yīng)該寫到中。無論怎么使用自定義語法,也不應(yīng)該影響這種好處,即使最終實(shí)現(xiàn)看起來有一些怪異。 React 核心開發(fā)人員 sebmarkbage 大神在 GitHub 開了個(gè) issues,用來征詢社區(qū)對 JSX 2.0 的建議。 showImg(https://segm...

    Cristalven 評(píng)論0 收藏0
  • React

    摘要:語法是一種語法的拓展語言,在中官方也推薦使用描述用戶界面,使用起來會(huì)比較快捷而且易讀不是一門新的語言,可以理解為是一種語法糖,作用就是能夠讓我們更加直觀的在中創(chuàng)建標(biāo)簽,最終還是會(huì)被編譯為語法,例如我們看一段代碼上面的語法最終會(huì)被編譯為語法, Reatc JSX語法 jsx是一種JavaScript語法的拓展語言,在React中官方也推薦使用jsx描述用戶界面,使用起來會(huì)比較快捷而且易讀...

    techstay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<