91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣使用webpack在vue項目中寫jsx語法

發布時間:2021-02-20 11:13:10 來源:億速云 閱讀:334 作者:小新 欄目:web開發

這篇文章給大家分享的是有關怎樣使用webpack在vue項目中寫jsx語法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

使用webpack在vue項目中寫jsx語法

我們知道Vue 2.0中對虛擬DOM的支持。我們可以通過JavaScript動態的創建元素,而不用在template中寫HTML代碼。虛擬DOM最終將被渲染為真正的DOM。

data: {
 msg: 'Hello world'
},
render (h) {
 return h(
 'div',
 { attrs: { id: 'my-id' },
 [ this.msg ]
 );
}

渲染后的內容為:

<div id='my-id'>Hello world</div>

Vue 2.0中的render為我們開啟了一片新的天地,賦予了我們無限的想象力。比如,我們可以把React中用到的JSX語法應用到Vue中來。接下來,我們就聊聊怎么在Vue項目中使用JSX.

JSX簡介

JSX是基于Javascript的語言擴展, 它允許在Javascript代碼中插入XML語法風格的代碼。如下所示:

data: {
 msg: 'Hello world'
},
render (h) {
 return (
 <div id='my-id'>,
  { this.msg } 
 </div>
 );
}

但值得注意的是,瀏覽器默認是解析不了JSX的,它必須要先編譯成標準的JavaScript代碼才可以運行。就像我們需要將sass或者less編譯為CSS代碼之后才能運行一樣。

在Vue中使用JSX

Vue框架并沒有特意地去支持JSX,其實它也沒必要去支持,因為JSX最后都會編譯為標準的JavaScript代碼。既然這樣, 那Vue和JSX為什么能配合在一起使用呢? 很簡單, 因為Vue支持虛擬DOM, 你可以用JSX或者其他預處理語言,只要能保證render方法正常工作即可。

Vue官方提供了一個叫做babel-plugin-transform-vue-jsx的插件來編譯JSX, 我們稍后介紹如何使用它。

為什么要在Vue中使用JSX

為什么要再Vue中使用JSX ? 其實Vue并沒有強迫你去使用JSX, 它只是提供了一種新的方式而已。正所謂蘿卜青菜,各有所愛。有的人覺得在render方法中使用JSX更簡潔,有的人卻覺得在JavaScript代碼中混入HTML代碼很惡心。反正你喜歡就用,不喜歡就不用唄。廢話少說,我們先看一個簡單的應用:
script.js

new Vue({
 el: '#app',
 data: {
 msg: 'Click to see the message'
 },
 methods: {
 hello () {
  alert('This is the message')
 }
 }
});

index.html

<div id="app">
 <span 
  class="my-class" 
   
  v-on:click="hello"
 >
  {{ msg }}
 </span>
</div>

代碼很簡單,就是在頁面上顯示一個span, 里面的內容為"Click to see the message"。當點擊內容時,彈出一個alert。我們看看用render怎么實現。

用Vue 2.0中的render函數實現

script.js

new Vue({
 el: '#app',
 data: {
 msg: 'Click to see the message'
 },
 methods: {
 hello () {
  alert('This is the message')
 }
 },
 render (createElement) {
 return createElement(
  'span',
  {
  class: { 'my-class': true },
  style: { cursor: 'pointer' },
  on: {
   click: this.hello
  }
  },
  [ this.msg ]
 );
 },
});

index.html

<div id="app"><!--span will render here--></div>

使用JSX來實現

script.js

new Vue({
 el: '#app',
 data: {
 msg: 'Click to see the message.'
 },
 methods: {
 hello () {
  alert('This is the message.')
 }
 },
 render: function render(h) {
 return (
  <span
  class={{ 'my-class': true }}
  style={{ cursor: 'pointer' }}
  on-click={ this.hello }
  >
  { this.msg }
  </span>
 )
 }
});

index.html和上文一樣。

babel-plugin-transform-vue-jsx

正如前文所說, JSX是需要編譯為JavaScript才可以運行的, 所以第三個樣例需要有額外的編譯步驟。這里我們用Babel和Webpack來進行編譯。

打開你的webpack.config.js文件, 加入babel loader:

loaders: [
 { test: /\.js$/, loader: 'babel', exclude: /node_modules/ }
]

新建或者修改你的.babelrc文件,加入 babel-plugin-transform-vue-jsx 這個插件

{
 "presets": ["es2015"],
 "plugins": ["transform-vue-jsx"]
}

現在運行webpack, 代碼里面的JSX就會被正確的編譯為標準的JavaScript代碼。

感謝各位的閱讀!關于“怎樣使用webpack在vue項目中寫jsx語法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘洛县| 建阳市| 荣昌县| 石林| 伊吾县| 云龙县| 淮南市| 临夏市| 蓬安县| 宁明县| 天津市| 磐安县| 施秉县| 衡东县| 恭城| 东乌珠穆沁旗| 炎陵县| 炉霍县| 邢台市| 溧水县| 古田县| 汕头市| 梅州市| 周口市| 宝丰县| 金平| 乐都县| 陇南市| 武鸣县| 沂水县| 东安县| 泰顺县| 五家渠市| 海淀区| 维西| 湖北省| 彭水| 新郑市| 兴安盟| 正安县| 宿迁市|