精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

竟然可以在一個(gè)項(xiàng)目中混用 Vue 和 React?

開發(fā) 前端
React和Vue是前端開發(fā)中的兩大熱門框架,各自都有著強(qiáng)大的功能和豐富的生態(tài)系統(tǒng)。然而,你有沒有想過,在一個(gè)項(xiàng)目中同時(shí)使用React和Vue?是的,你沒有聽錯(cuò),可以在同一個(gè)項(xiàng)目中混用這兩個(gè)框架!本文就來分享 3 個(gè)用于混合使用 React 和 Vue 的工具!

Veaury

Veaury 是一個(gè)基于 React 和 Vue3 的工具庫,主要用于React和Vue在一個(gè)項(xiàng)目中公共使用的場(chǎng)景,主要運(yùn)用在項(xiàng)目遷移、技術(shù)棧融合的開發(fā)模式、跨技術(shù)棧使用第三方組件的場(chǎng)景。

Veaury的特點(diǎn)如下:

  • 同時(shí)支持Vue3和React,方便在一個(gè)項(xiàng)目中公共使用。
  • 支持同一個(gè)應(yīng)用中出現(xiàn)的vue組件和react組件的context共享。
  • 支持跨框架的hooks調(diào)用,可以在react組件中使用vue的hooks,也可以在vue組件中使用react的hooks。
  • 可以解決React和Vue在公共使用時(shí)的代碼重復(fù)、冗余的問題。
  • 在一個(gè)應(yīng)用中可以隨意使用React或者Vue的第三方組件, 比如 antd, element-ui, vuetify。
  • 提供了詳細(xì)的官方文檔,包括英文版和中文版。

Veaury 的文檔寫的非常詳細(xì),這里就不再詳細(xì)介紹其使用方式了。需要注意的是,Veaury 并不支持 Vue 2,如果需要使用Vue 2,可以使用下面要介紹的工具庫。

Github:https://github.com/devilwjp/veaury。

Vuera

Vuera 是一個(gè)用于在 Vue 應(yīng)用中使用 React 組件的庫,同時(shí)也支持在 React 應(yīng)用中使用 Vue 組件。它提供了一種方便的方式,使開發(fā)人員能夠在不同的框架之間無縫地使用對(duì)方的組件。

要在 Vue 應(yīng)用中使用React組件,可以按照以下步驟使用Vuera。

安裝插件

安裝Vuera:使用npm或yarn在您的Vue項(xiàng)目中安裝Vuera庫。

// 使用 yarn 安裝
yarn add vuera

// 使用 npm 安裝
npm i -S vuera

安裝依賴。

由于需要在Vue中使用React組件,所以首先需要在項(xiàng)目中安裝 React,安裝指令如下:

npm install --save react react-dom

項(xiàng)目配置

在babel.config.js文件中添加以下配置即可:

{
  "presets": [
    "react"
  ],
  "plugins": [
    "vuera/babel"
  ]
}

接下來在項(xiàng)目中以插件的形式來引入并使用vuera庫,可以在 main.js 中加入如下代碼:

import { VuePlugin } from 'vuera'
Vue.use(VuePlugin)

基本使用

完成上述配置之后,就可以在Vue項(xiàng)目中引入并使用React組件了。

React組件代碼如下:

import React from 'react'

function myReactComponent(props) {
  const { message } = props
  function childClickHandle() {
    props.onMyEvent('React子組件傳遞的數(shù)據(jù)')
  }
  return (
    <div>
      <h2>{ message }</h2>
      <button onClick={ childClickHandle }>向Vue項(xiàng)目傳遞React子組件的數(shù)據(jù)</button>
    </div>
  )
}

export default myReactComponent

Vue組件代碼如下:

<template>
    <div>
        <h1>I'm a Vue component</h1>
        <my-react-component :message="message" @onMyEvent="parentClickHandle"/>
    </div>
</template>

<script>
    // 引入React組件
    import MyReactComponent from './myReactComponent'

    export default {
        components: {
            'my-react-component': MyReactComponent  // 引入React組件
        },
        data() {
            return {
                message: 'Hello from React!',
            }
        },
        methods: {
            parentClickHandle(data){
                console.log(data);
            }
        },
    }
</script>

在 Vue 項(xiàng)目中引入了這個(gè) React 組件,效果如下:

可以看到,這里實(shí)現(xiàn)了Vue到React組件的傳值,并顯示在了頁面上。根據(jù)右上角的Chrome插件顯示,這個(gè)項(xiàng)目中既使用了Vue又使用了React。

點(diǎn)擊頁面中的按鈕,可以看到,數(shù)據(jù)從React子組件傳遞到了Vue中:

這樣就簡(jiǎn)單實(shí)現(xiàn)了React和Vue組件之間的數(shù)據(jù)通信。

其他使用方式

如果不想通過 Babel plugin 的方式引入的話,可以使用以下這兩種方法。

(1)使用wrapper組件

<template>
  <div>
    <react :component="component" :message="message" />
  </div>
</template>
 
<script>
  import { ReactWrapper } from 'vuera'  // 引入vuera庫
  import MyReactComponent from './MyReactComponent'  // 引入react組件
 
  export default {
    data () {
      component: MyReactComponent,
      message: 'Hello from React!',
    },
    components: { react: ReactWrapper }
  }
</script>

(2)使用高階組件的API

<template>
  <div>
    <my-react-component :message="message" />
  </div>
</template>
 
<script>
  import { ReactWrapper } from 'vuera'  // 引入vuera庫
  import MyReactComponent from './MyReactComponent'  // 引入react組件
 
  export default {
    data () {
      message: 'Hello from React!',
    },
    components: { 'my-react-component': ReactInVue(MyReactComponent) }
  }
</script>

在 React 項(xiàng)目中使用 Vue 組件也是同理,可以參考官方文檔。

注意

Vuera 是一個(gè)比較成熟的 JavaScrip 庫,但是目前已經(jīng)不再維護(hù)(最近一次更新是三年前)。并且,該庫不支持 Vue 3,如果想要支持 Vue 3,可以使用 Vueury。

Github:https://github.com/akxcv/vuera。

#vuereact-combined

vuereact-combined 是一個(gè)用于 Vue和React快捷集成的工具包,并且適合復(fù)雜的集成場(chǎng)景。通過這個(gè)工具,可以在任何的Vue和React項(xiàng)目中使用另一個(gè)類型框架的組件,并且解決了復(fù)雜的集成問題。

vuera 開辟了Vue和React融合的想法,但是 vuera只能解決非?;A(chǔ)的組件融合,并且存在插槽(children)和數(shù)據(jù)變更后的渲染性能問題,因此無法用于復(fù)雜的場(chǎng)景以及生產(chǎn)環(huán)境。

vuereact-combined 將融合做到了極致,支持了大部分的Vue和React組件的功能,并且在渲染更新上使用了和vuera不同的思路,完美解決了渲染性能問題

注意,該項(xiàng)目只支持使用 Vue 2,如果想要使用 Vue 3,可以使用上面的介紹的 Veaury。

使用vuereact-combined的步驟如下。

#安裝插件

在項(xiàng)目中安裝vuereact-combined:

npm install --save vuereact-combined

項(xiàng)目配置

在Vue和React的入口文件中引入 vuereact-combined:

import Vue from 'vue';  
import React from 'react';  
import {Combined} from 'vuereact-combined';  
  
Vue.use(Combined);

配置Babel以支持JSX語法和Vue.js的特性。安裝babel-plugin-transform-vue-jsx和babel-preset-react,并在.babelrc文件中添加相應(yīng)的配置:

{  
  "presets": ["react-app"],  
  "plugins": ["@vue/babel-plugin-transform-vue-jsx"]  
}

在webpack配置文件中添加相應(yīng)的loader和plugin:

const VueLoaderPlugin = require('vue-loader/lib/plugin');  
module.exports = function(webpackEnv) {  
  module: {  
    rules: [  
      {  
        test: /\.vue$/,  
        loader: 'vue-loader',  
      },  
      {  
        test: /\.js$/,  
        exclude: /node_modules\/(?!(vue|@vue\/.*)\/).*/,  
        use: {  
          loader: 'babel-loader',  
          options: {  
            presets: ['@babel/preset-env'],  
            plugins: ['@babel/plugin-transform-vue-jsx']  
          }  
        }  
      },  
      // 其他規(guī)則...  
    ],  
  },  
  plugins: [  
    new VueLoaderPlugin(),  
    // 其他插件...  
  ],  
};

配置完畢后,就可以在Vue和React之間進(jìn)行快捷的集成了。

基本使用

假設(shè)有一個(gè)React組件,它是一個(gè)簡(jiǎn)單的函數(shù)組件:

// 來自React項(xiàng)目的組件
const MyReactComponent = () => {
  return <div>Hello React!</div>;
};

可以在Vue項(xiàng)目中引入并使用這個(gè)組件。下面是一個(gè)使用vuereact-combined的Vue文件示例:

<template>
  <div>
    <MyReactComponent />
  </div>
</template>

<script>
import {Combined} from 'vuereact-combined';
import MyReactComponent from './MyReactComponent'; // 引入React組件

export default {
  components: {
    Combined,
    MyReactComponent // 將React組件注冊(cè)為Vue組件
  },
  // 其他Vue代碼...
};
</script>

這里,首先引入了MyReactComponent,然后在Vue組件中使用它。通過將React組件注冊(cè)為Vue組件,我們可以在Vue模板中使用它,就像使用普通的Vue組件一樣。

這里只展示了最基本的使用方法,其他使用場(chǎng)景可以參考官方文檔。

注意事項(xiàng)

  • 在Vue項(xiàng)目中使用第三方的React組件:第三方的react組件已經(jīng)是通過babel進(jìn)行過處理,不包含 React 的 jsx。此情況下,可以直接在項(xiàng)目中使用applyReactInVue對(duì)第三方的 React 組件進(jìn)行處理。
  • 在React項(xiàng)目中使用第三方的Vue組件:第三方的Vue組件已經(jīng)是通過vue-loader和babel進(jìn)行過處理,不包含.vue文件以及Vue的jsx。此情況下,可以直接在項(xiàng)目中使用applyVueInReact對(duì)第三方的Vue組件進(jìn)行處理。

在 React 項(xiàng)目中引入Vue組件的支持程度:

在 Vue 項(xiàng)目中引入 React 組件:

Github:https://github.com/devilwjp/vuereact-combined。

責(zé)任編輯:姜華 來源: 前端充電寶
相關(guān)推薦

2015-08-03 11:45:37

storyboard

2022-02-21 08:15:15

Go項(xiàng)目語言

2022-04-27 05:55:43

去QA化自動(dòng)化測(cè)試開發(fā)

2024-12-09 00:00:03

Vue3項(xiàng)目表單

2021-09-16 09:38:12

開發(fā)項(xiàng)目代碼

2021-08-04 08:27:00

VueReact自動(dòng)化部署

2019-03-25 10:30:19

開發(fā)技能代碼

2024-03-04 00:00:00

GolangNode.js性能

2024-11-29 09:41:17

2023-10-08 07:54:13

printlnJITJVM

2020-03-09 09:07:51

Vue根節(jié)點(diǎn)Fragments

2023-10-06 11:48:37

reactvuenodejs

2021-08-08 21:17:18

管理配置平臺(tái)

2023-01-18 07:49:42

2021-06-02 08:00:57

WebAsyncTas項(xiàng)目異步

2024-07-26 10:47:10

2024-12-11 09:13:00

2023-03-13 08:09:03

Protobuffeature分割

2025-06-18 08:16:26

2017-07-04 19:02:17

ReacRedux 項(xiàng)目
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

精品视频免费| 精品一区在线播放| 神马影院我不卡午夜| аⅴ天堂中文在线网| 色呦呦免费观看| 婷婷色综合网| 日本精品一区二区三区高清 | 91国产精品成人| 中文字幕一区二区三区四区五区六区| 97超碰人人干| silk一区二区三区精品视频| 国产精品suv一区二区三区| av免费网站在线观看| 国精一区二区| 天天影视网天天综合色在线播放| 亚洲一区二区免费| 四虎地址8848| 91大神在线观看线路一区| 久久综合久久综合久久| 欧美亚洲国产精品| 成人精品在线观看视频| aa视频在线观看| 成人免费看黄yyy456| 欧美精品一区二区三区国产精品 | 老司机99精品99| 日韩二区三区在线观看| 亚洲精品影视在线观看| 免费黄色福利视频| 日韩午夜影院| 久久久久久自在自线| 精品一区二区电影| 在线观看av免费观看| 国产激情视频在线| 欧美黑吊大战白妞| 松下纱荣子在线观看| av在线播放成人| 91国内揄拍国内精品对白| 手机看片福利日韩| 欧美一级片免费| 亚洲人成久久| 精品视频久久久久久| 超碰人人cao| 伊人影院蕉久影院在线播放| 国产亚洲成av人在线观看导航| 日韩免费在线观看视频| 波多野结衣办公室33分钟| 精品极品在线| 国产欧美日本一区二区三区| 国产精品九九久久久久久久| 91香蕉国产视频| 成人免费观看49www在线观看| 99久久精品国产毛片| 欧美与欧洲交xxxx免费观看| 妺妺窝人体色www聚色窝仙踪| 欧美a级大片在线| 欧美日韩午夜剧场| 五月天丁香综合久久国产| 日本v片在线免费观看| 懂色av中文一区二区三区| 欧美俄罗斯乱妇| 亚洲欧美国内爽妇网| 日韩精品一区在线视频| 精品av中文字幕在线毛片| 精品一区二区三区视频| 久久免费视频观看| 91视频免费观看网站| 韩日精品一区| 亚洲午夜精品17c| 婷婷四房综合激情五月| 国产农村妇女毛片精品久久| 老熟妇精品一区二区三区| 91香蕉一区二区三区在线观看| 四虎成人精品一区二区免费网站| 欧美成a人免费观看久久| 色又黄又爽网站www久久| 日韩欧美一区二区在线观看| 亚洲在线精品视频| 欧美日本一区二区视频在线观看 | 美女黄色丝袜一区| 在线视频这里只有精品| 中文字幕一区二区三区乱码图片 | 不卡的在线视频| 麻豆蜜桃在线| 国产丝袜美腿一区二区三区| 色综合久久久久久久久五月| 日本美女在线中文版| 粉嫩绯色av一区二区在线观看 | 国产福利资源在线| 欧美视频在线第一页| 国产在线观看免费| 中文字幕一区二区三区蜜月| 久久久久久精| 亚洲爆乳无码一区二区三区| 蜜桃久久久久久久| 欧洲成人免费视频| 久久人人爽人人爽人人| 久久亚洲影视| 亚洲系列中文字幕| 亚洲一区二区三区四区五区六区 | 男人的天堂久久精品| 91精品国产91久久久久青草| 中文在线a天堂| 欧美一级二区| 久久久久久久一区二区| 国产精品免费人成网站酒店| 精品一区二区三区在线| 操日韩av在线电影| 精品亚洲乱码一区二区| 亚洲精品1234| 国产一区二区香蕉| 中文字幕在线观看你懂的| 国产999精品久久| 日本黄网免费一区二区精品| 视频一区二区三区在线看免费看| 国v精品久久久网| 欧美精品v日韩精品v国产精品| 天天综合在线视频| 国产精品国产三级国产aⅴ中文| 18禁裸男晨勃露j毛免费观看| 日本色护士高潮视频在线观看 | 青草草在线视频| 久久精选视频| 春色成人在线视频| 亚洲精品成人区在线观看| 久久精品男人的天堂| 人人妻人人澡人人爽欧美一区双| 91av一区| 亚洲人成绝费网站色www| 日本高清www| 欧美激情1区2区3区| 欧美另类在线播放| 久久综合色综合| 久色婷婷小香蕉久久| 成人福利免费观看| 国产露脸国语对白在线| 国产在线精品一区二区夜色| 亚洲影院色无极综合| 精品乱码一区二区三四区视频| 亚洲福利视频导航| 国产97在线 | 亚洲| 天堂网在线最新版www中文网| 欧美一区二区人人喊爽| 99久久久无码国产精品性波多 | 污片视频在线免费观看| 欧美日韩国产免费一区二区| 精品综合久久久久| 日韩三级网址| 亚洲国产美女精品久久久久∴| 亚洲色图14p| 亚洲精品视频啊美女在线直播| 51国产成人精品午夜福中文下载| 大地资源网3页在线观看| 欧美美女bb生活片| 黑人玩弄人妻一区二区三区| 欧美精品一线| 97se亚洲综合| 欧美xxx黑人xxx水蜜桃| 欧美本精品男人aⅴ天堂| 成人免费网站黄| 久久99伊人| 欧美日韩亚洲在线| 午夜av成人| 中文字幕日韩av电影| 国产一卡二卡在线播放| 日韩av二区在线播放| 999精品视频一区二区三区| av片在线观看| 欧美tickling网站挠脚心| 久操免费在线视频| 99视频精品全部免费在线| 中文字幕无码精品亚洲35| 妖精视频一区二区三区| 超碰91人人草人人干| 国产三级伦理片| 一区二区三区中文字幕| 在线视频日韩一区 | 欧美精品一区二区三区视频| 欧美福利第一页| 在线电影一区| 国产精品视频播放| 欧美一级特黄aaaaaa大片在线观看| 亚洲自拍偷拍图区| 国产福利在线免费| 精品一区毛片| 欧美激情一级精品国产| 五月婷婷深深爱| 亚洲一区二区av在线| jjzzjjzz欧美69巨大| 国产精品毛片久久| www.成人av.com| 四虎久久免费| 日韩美女在线视频| 97在线观看免费高| 成人国产精品免费观看| 日本丰满大乳奶| 久久麻豆视频| 亚洲色图校园春色| 国产女人高潮时对白| 五月激情综合婷婷| 日韩av网站在线播放| 成人h动漫精品一区二| 男女无套免费视频网站动漫| 欧美fxxxxxx另类| 免费看污久久久| 国产白浆在线免费观看| 伊人一区二区三区久久精品 | 日韩欧美福利视频| 青青草视频网站| 午夜日韩av| 欧美日韩大片一区二区三区| 国产情侣一区在线| 国产精品大片wwwwww| 韩国成人免费视频| 亚洲а∨天堂久久精品9966| 国产免费a视频| 国产欧美日韩三级| www.555国产精品免费| 美女精品一区二区| 欧美xxxxx在线视频| 女人av一区| 国产精品一区二区av| 黄视频在线免费看| 日韩在线观看免费av| 国产一区二区女内射| 中文字幕在线一区二区三区| 在线观看av中文字幕| 高清shemale亚洲人妖| 午夜国产福利在线观看| 日韩成人一级片| 欧美 日韩 国产一区| 亚洲激情午夜| 日韩精品综合在线| 欧美一区二区三区久久精品| 亚洲精品成人自拍| 成人豆花视频| 国产精品国产福利国产秒拍| 精精国产xxx在线视频app| 欧美日韩成人在线观看| 1区2区在线观看| 久久成人精品一区二区三区| 日本激情视频在线观看| 中文国产亚洲喷潮| 成年人在线看| 欧美一区二区三区四区久久 | 在线播放蜜桃麻豆| 精品国产美女在线| 欧美成人高清在线| 精品免费99久久| 国产高中女学生第一次| 91精品国产麻豆国产自产在线| 国产精品久久久久久免费| 欧美视频一区二| 久草视频免费在线| 夜夜嗨av一区二区三区四季av | 久久精品国内一区二区三区水蜜桃| 91欧美日韩一区| 国产夫妻在线| 久久免费视频在线| 在线高清av| 国产成人精品免高潮费视频| caoporn免费在线| 久久影院资源网| 99热国产在线中文| 久久久久久久影院| 久草在线中文最新视频| 日韩有码在线电影| 免费日本一区二区三区视频| 久久精品人人爽| 国产小视频在线播放| 一本色道久久88精品综合| 日韩伦理在线电影| 久久香蕉国产线看观看av| 亚洲淫性视频| 91精品国产成人www| 国产片侵犯亲女视频播放| 在线观看男女av免费网址| 久久国产精品久久久久久久久久| 主播国产精品| 97免费视频在线播放| 老司机在线永久免费观看| 久久久91精品国产| 男人天堂亚洲| 欧洲亚洲在线视频| 日韩一级特黄| 成人毛片网站| 国产伦一区二区三区| 中文字幕日韩一区二区三区| 韩日成人在线| av电影一区二区三区| 黄色成人91| 男人亚洲天堂网| 亚洲国产一区二区精品专区| 干日本少妇首页| 精品无人区卡一卡二卡三乱码免费卡| 国产成人久久777777| 麻豆精品一区二区三区| 丰满人妻一区二区三区53视频| 91一区在线观看| 香蕉成人在线视频| 亚洲高清视频在线| 这里只有精品免费视频| 懂色av中文一区二区三区天美| 日本成人一级片| 精品剧情v国产在线观看在线| 美女做暖暖视频免费在线观看全部网址91 | 国内小视频在线看| 国产精品一区二区三| 亚洲精品一区| 亚洲精品日韩av| 狠狠色狠狠色综合婷婷tag| 波多野结衣 作品| 日本一不卡视频| 国产午夜在线一区二区三区| 一区精品在线播放| av资源在线免费观看| 香港成人在线视频| 日韩免费视频网站| 51精品秘密在线观看| 国产精品久久久久久69| 日韩电视剧免费观看网站| 香蕉av一区二区三区| 日韩有码在线电影| 欧美福利在线播放| 国产精品av在线播放| 成人线上播放| 99久re热视频精品98| 久久精品久久精品| 波多野结衣一二三四区| 福利视频导航一区| 国产又黄又粗又长| 中文字幕av日韩| 中文在线免费视频| 国产欧美日韩亚洲| 久草成人资源| 免费看国产曰批40分钟| 久久黄色影院| 欧美双性人妖o0| 亚洲综合一区在线| 精品国产亚洲一区二区麻豆| 亚洲精品一区二区三区福利| 精品自拍一区| 国产欧美精品一区二区三区-老狼 国产欧美精品一区二区三区介绍 国产欧美精品一区二区 | 日韩欧美在线观看强乱免费| 国产欧美69| 久久精品一区二| 91丝袜呻吟高潮美腿白嫩在线观看| 中文字幕一区二区久久人妻网站| 亚洲一级二级三级在线免费观看| av网站免费播放| 久久影视免费观看| 免费一区二区三区在线视频| 日本一道在线观看| 亚洲综合精品四区| www.17c.com喷水少妇| 亚洲第一综合色| 天堂v在线观看| 5566成人精品视频免费| 国产videos久久| www日韩视频| 国产精品夜夜爽| 日韩人妻一区二区三区 | 亚洲天堂一区在线| 婷婷综合在线观看| 91精品久久久久久久久久另类| 免费电影视频在线看| caoporen国产精品| 在线亚洲激情| 天美星空大象mv在线观看视频| 久久久国产综合精品女国产盗摄| 97在线观看免费高| 日韩欧美在线一区二区三区| 激情小说 在线视频| 国产成人精彩在线视频九色| 红桃成人av在线播放| 中文字幕国产免费| 亚洲精品乱码久久久久| 日本xxxx人| 国产ts一区二区| 日韩片欧美片| 成人观看免费完整观看| 国产欧美日产一区| av av片在线看| 91av国产在线| 成人一二三区| 久久美女福利视频| 中文字幕av一区 二区| 亚洲精品www久久久久久| 亚洲欧美日本精品| 成人在线分类| 国产精品沙发午睡系列| 中文字幕在线免费不卡| 秋霞视频一区二区| 国产精品黄页免费高清在线观看| 亚洲色图欧美| 日本丰满少妇裸体自慰| 正在播放一区二区| 色偷偷色偷偷色偷偷在线视频| 日产精品一线二线三线芒果| 国产精品一区二区果冻传媒| 国产欧美一区二区三区在线看蜜臂|