日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

竟然可以在一個項目中混用 Vue 和 React?

來源: 責編: 時間:2023-09-18 21:42:10 405觀看
導讀VeauryVeaury 是一個基于 React 和 Vue3 的工具庫,主要用于React和Vue在一個項目中公共使用的場景,主要運用在項目遷移、技術棧融合的開發模式、跨技術棧使用第三方組件的場景。Veaury的特點如下:同時支持Vue3和React,方

B2r28資訊網——每日最新資訊28at.com

Veaury

Veaury 是一個基于 React 和 Vue3 的工具庫,主要用于React和Vue在一個項目中公共使用的場景,主要運用在項目遷移、技術棧融合的開發模式、跨技術棧使用第三方組件的場景。B2r28資訊網——每日最新資訊28at.com

Veaury的特點如下:B2r28資訊網——每日最新資訊28at.com

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

B2r28資訊網——每日最新資訊28at.com

Veaury 的文檔寫的非常詳細,這里就不再詳細介紹其使用方式了。需要注意的是,Veaury 并不支持 Vue 2,如果需要使用Vue 2,可以使用下面要介紹的工具庫。B2r28資訊網——每日最新資訊28at.com

Github:https://github.com/devilwjp/veaury。B2r28資訊網——每日最新資訊28at.com

Vuera

Vuera 是一個用于在 Vue 應用中使用 React 組件的庫,同時也支持在 React 應用中使用 Vue 組件。它提供了一種方便的方式,使開發人員能夠在不同的框架之間無縫地使用對方的組件。B2r28資訊網——每日最新資訊28at.com

要在 Vue 應用中使用React組件,可以按照以下步驟使用Vuera。B2r28資訊網——每日最新資訊28at.com

安裝插件

安裝Vuera:使用npm或yarn在您的Vue項目中安裝Vuera庫。B2r28資訊網——每日最新資訊28at.com

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

安裝依賴。B2r28資訊網——每日最新資訊28at.com

由于需要在Vue中使用React組件,所以首先需要在項目中安裝 React,安裝指令如下:B2r28資訊網——每日最新資訊28at.com

npm install --save react react-dom

項目配置

在babel.config.js文件中添加以下配置即可:B2r28資訊網——每日最新資訊28at.com

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

接下來在項目中以插件的形式來引入并使用vuera庫,可以在 main.js 中加入如下代碼:B2r28資訊網——每日最新資訊28at.com

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

基本使用

完成上述配置之后,就可以在Vue項目中引入并使用React組件了。B2r28資訊網——每日最新資訊28at.com

React組件代碼如下:B2r28資訊網——每日最新資訊28at.com

import React from 'react'function myReactComponent(props) {  const { message } = props  function childClickHandle() {    props.onMyEvent('React子組件傳遞的數據')  }  return (    <div>      <h2>{ message }</h2>      <button onClick={ childClickHandle }>向Vue項目傳遞React子組件的數據</button>    </div>  )}export default myReactComponent

Vue組件代碼如下:B2r28資訊網——每日最新資訊28at.com

<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 項目中引入了這個 React 組件,效果如下:B2r28資訊網——每日最新資訊28at.com

B2r28資訊網——每日最新資訊28at.com

可以看到,這里實現了Vue到React組件的傳值,并顯示在了頁面上。根據右上角的Chrome插件顯示,這個項目中既使用了Vue又使用了React。B2r28資訊網——每日最新資訊28at.com

點擊頁面中的按鈕,可以看到,數據從React子組件傳遞到了Vue中:B2r28資訊網——每日最新資訊28at.com

B2r28資訊網——每日最新資訊28at.com

這樣就簡單實現了React和Vue組件之間的數據通信。B2r28資訊網——每日最新資訊28at.com

其他使用方式

如果不想通過 Babel plugin 的方式引入的話,可以使用以下這兩種方法。B2r28資訊網——每日最新資訊28at.com

(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 項目中使用 Vue 組件也是同理,可以參考官方文檔。B2r28資訊網——每日最新資訊28at.com

注意

Vuera 是一個比較成熟的 JavaScrip 庫,但是目前已經不再維護(最近一次更新是三年前)。并且,該庫不支持 Vue 3,如果想要支持 Vue 3,可以使用 Vueury。B2r28資訊網——每日最新資訊28at.com

Github:https://github.com/akxcv/vuera。B2r28資訊網——每日最新資訊28at.com

#vuereact-combined

vuereact-combined 是一個用于 Vue和React快捷集成的工具包,并且適合復雜的集成場景。通過這個工具,可以在任何的Vue和React項目中使用另一個類型框架的組件,并且解決了復雜的集成問題。B2r28資訊網——每日最新資訊28at.com

vuera 開辟了Vue和React融合的想法,但是 vuera只能解決非常基礎的組件融合,并且存在插槽(children)和數據變更后的渲染性能問題,因此無法用于復雜的場景以及生產環境。B2r28資訊網——每日最新資訊28at.com

vuereact-combined 將融合做到了極致,支持了大部分的Vue和React組件的功能,并且在渲染更新上使用了和vuera不同的思路,完美解決了渲染性能問題B2r28資訊網——每日最新資訊28at.com

B2r28資訊網——每日最新資訊28at.com

注意,該項目只支持使用 Vue 2,如果想要使用 Vue 3,可以使用上面的介紹的 Veaury。B2r28資訊網——每日最新資訊28at.com

使用vuereact-combined的步驟如下。B2r28資訊網——每日最新資訊28at.com

#安裝插件

在項目中安裝vuereact-combined:B2r28資訊網——每日最新資訊28at.com

npm install --save vuereact-combined

項目配置

在Vue和React的入口文件中引入 vuereact-combined:B2r28資訊網——每日最新資訊28at.com

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文件中添加相應的配置:B2r28資訊網——每日最新資訊28at.com

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

在webpack配置文件中添加相應的loader和plugin:B2r28資訊網——每日最新資訊28at.com

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']            }          }        },        // 其他規則...      ],    },    plugins: [      new VueLoaderPlugin(),      // 其他插件...    ],  };

配置完畢后,就可以在Vue和React之間進行快捷的集成了。B2r28資訊網——每日最新資訊28at.com

基本使用

假設有一個React組件,它是一個簡單的函數組件:B2r28資訊網——每日最新資訊28at.com

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

可以在Vue項目中引入并使用這個組件。下面是一個使用vuereact-combined的Vue文件示例:B2r28資訊網——每日最新資訊28at.com

<template>  <div>    <MyReactComponent />  </div></template><script>import {Combined} from 'vuereact-combined';import MyReactComponent from './MyReactComponent'; // 引入React組件export default {  components: {    Combined,    MyReactComponent // 將React組件注冊為Vue組件  },  // 其他Vue代碼...};</script>

這里,首先引入了MyReactComponent,然后在Vue組件中使用它。通過將React組件注冊為Vue組件,我們可以在Vue模板中使用它,就像使用普通的Vue組件一樣。B2r28資訊網——每日最新資訊28at.com

這里只展示了最基本的使用方法,其他使用場景可以參考官方文檔。B2r28資訊網——每日最新資訊28at.com

注意事項

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

在 React 項目中引入Vue組件的支持程度:B2r28資訊網——每日最新資訊28at.com

B2r28資訊網——每日最新資訊28at.com

在 Vue 項目中引入 React 組件:
B2r28資訊網——每日最新資訊28at.com

B2r28資訊網——每日最新資訊28at.com

Github:https://github.com/devilwjp/vuereact-combined。B2r28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-10482-0.html竟然可以在一個項目中混用 Vue 和 React?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 使用Docker構建輕量級Linux容器

下一篇: 零拷貝并非萬能解決方案:重新定義數據傳輸的效率極限

標簽:
  • 熱門焦點
  • K60至尊版狂暴引擎2.0加持:超177萬跑分斬獲性能第一

    Redmi的后性能時代戰略發布會今天下午如期舉辦,在本次發布會上,Redmi公布了多項關于和聯發科的深度合作,以及新機K60 Ultra在軟件和硬件方面的特性,例如:“K60 至尊版,雙芯旗艦
  • 紅魔電競平板評測:大屏幕硬實力

    前言:三年的疫情因為要上網課的原因激活了平板市場,如今網課的時代已經過去,大家的生活都恢復到了正軌,這也就意味著,真正考驗平板電腦生存的環境來了。也就是面對著這種殘酷的
  • Redmi Buds 4開箱簡評:才199還有降噪 可以無腦入

    在上個月舉辦的Redmi Note11T Pro系列新機發布會上,除了兩款手機新品之外,Redmi還帶來了兩款TWS真無線藍牙耳機產品,Redmi Buds 4和Redmi Buds 4 Pro,此前我們在Redmi Note11T
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發布,本次就這款耳機新品給大家帶來一個簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數量是否小于或等于一個數字。例如,一個擁有三個或更多子項的grid。你可能會想,為什么需要這樣做呢?在某些情況下,一個組件或一個布局可能會
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 外交部:美方應停止在網絡安全問題上不負責任地指責他國

      中國外交部今天(16日)舉行例行記者會。會上,有記者問,美國情報官員稱,他們正在阻攔來自中國以及其他國家的黑客獲取相關科研成果。 中方對此有何評論?對此
  • 利用職權私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據外媒援引知情人士表示,過去一年時間內,Facebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內部系統以不當方式重置用戶帳號,其
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
欧美成人a视频| 尤妮丝一区二区裸体视频| 欧美精品乱人伦久久久久久| 欧美激情网友自拍| 国产精品爱久久久久久久| 99视频精品在线| 亚洲视频成人| 欧美一区二区三区四区在线观看地址| 久久精品综合| 欧美精品色综合| 国产精品一区二区在线| 在线观看视频日韩| 一区二区三区蜜桃网| 久久激情婷婷| 欧美精品麻豆| 国产欧美日韩不卡| 亚洲国产日韩欧美在线图片| 亚洲午夜精品国产| 久久视频在线看| 欧美日韩国产高清视频| 国产视频欧美视频| 99热在这里有精品免费| 久久久久久一区二区| 欧美视频在线观看视频极品| 精品999在线播放| 亚洲一品av免费观看| 蜜桃av久久久亚洲精品| 国产精品久久久久9999高清 | 国产精品爽爽爽| 亚洲第一黄网| 午夜在线播放视频欧美| 欧美精品久久99久久在免费线| 国产偷国产偷亚洲高清97cao| 亚洲蜜桃精久久久久久久| 欧美在线高清视频| 欧美午夜精品久久久久久久 | 亚洲麻豆一区| 久久香蕉精品| 国产农村妇女精品一区二区| 亚洲精品日产精品乱码不卡| 久久精品在线观看| 国产精品嫩草影院一区二区| 亚洲精品中文字幕有码专区| 久久婷婷色综合| 国产乱码精品一区二区三区忘忧草| 亚洲精品麻豆| 久久综合影音| 国产无一区二区| 亚洲天堂网在线观看| 欧美v国产在线一区二区三区| 国产一区91精品张津瑜| 亚洲一区二区三区成人在线视频精品| 女同一区二区| 在线观看欧美日韩国产| 香蕉精品999视频一区二区| 欧美午夜电影一区| 亚洲美女在线看| 欧美国产一区在线| 在线欧美电影| 久久免费国产精品1| 国产日韩欧美在线播放不卡| 亚洲一卡久久| 国产精品久久久久久久久久免费看| 99在线精品观看| 欧美美女视频| 亚洲美女尤物影院| 欧美精品电影在线| 日韩亚洲不卡在线| 欧美激情导航| 91久久精品一区二区别| 蜜桃伊人久久| 亚洲电影免费观看高清| 久久一区亚洲| 亚洲第一在线综合网站| 麻豆成人在线| 亚洲国产女人aaa毛片在线| 另类春色校园亚洲| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产亚洲精品久| 欧美一区二区三区在线视频| 国产精品制服诱惑| 欧美一区二区三区视频在线观看| 国产精品午夜在线观看| 午夜日韩福利| 国产午夜精品久久久久久久| 欧美一区永久视频免费观看| 国产亚洲第一区| 久久久久久久综合狠狠综合| 一区视频在线看| 毛片基地黄久久久久久天堂| 亚洲高清视频在线| 欧美日韩精品免费观看视一区二区 | 亚洲黄色影片| 欧美了一区在线观看| 一区二区三区国产精品| 欧美午夜精品久久久久久人妖| 亚洲一区二区三| 国产日韩一区二区三区| 欧美专区在线观看| 一区在线视频观看| 欧美精品18| 亚洲午夜极品| 国产欧美日本| 可以免费看不卡的av网站| 亚洲欧洲另类国产综合| 欧美激情综合色| 亚洲午夜av电影| 国产亚洲成年网址在线观看| 久久综合久久综合这里只有精品| 亚洲经典三级| 国产精品高清免费在线观看| 欧美一区二区视频观看视频| 亚洲东热激情| 欧美体内she精视频| 欧美在线一二三四区| 亚洲国产欧美精品| 欧美色欧美亚洲高清在线视频| 欧美亚洲一级片| 亚洲丰满在线| 国产精品国产福利国产秒拍| 欧美主播一区二区三区| 亚洲全部视频| 国产精品每日更新| 久久视频一区| 一区二区高清| 狠狠v欧美v日韩v亚洲ⅴ| 欧美黄色视屏| 欧美一区二区精品在线| 亚洲二区视频在线| 国产精品久久久久久久久果冻传媒 | 亚洲国产99| 国产精品久久久久一区二区三区 | 亚洲伊人网站| 亚洲成色777777在线观看影院| 欧美日韩中文字幕在线视频| 久久精品亚洲一区| 一区二区三区国产精华| 国模精品娜娜一二三区| 欧美日韩免费观看一区三区| 久久国产精品黑丝| 一本色道久久精品| 影音先锋久久久| 国产精品久久久久毛片大屁完整版| 久久视频一区| 亚洲欧美视频一区| 99re成人精品视频| 国模精品一区二区三区| 国产精品av一区二区| 快播亚洲色图| 欧美亚洲视频在线观看| 日韩视频在线一区二区三区| 国产在线不卡精品| 国产精品久久久999| 欧美成人国产va精品日本一级| 午夜精品国产更新| 一道本一区二区| 亚洲电影网站| 国产一区二区福利| 国产精品久久久久aaaa樱花| 欧美二区不卡| 久久深夜福利免费观看| 午夜视频精品| 亚洲午夜激情网站| 亚洲乱码视频| 亚洲国产成人久久综合| 国产一区二区精品丝袜| 国产精品看片你懂得| 欧美日韩国产影院| 欧美成人首页| 久久综合狠狠综合久久激情| 欧美在线亚洲一区| 午夜在线a亚洲v天堂网2018| 亚洲午夜激情| 一区二区av在线| 亚洲精品视频在线观看免费| 在线观看视频一区| 国产在线国偷精品产拍免费yy| 国产精品久久久久久久久久三级| 欧美激情视频一区二区三区不卡| 久久亚洲欧美国产精品乐播| 欧美在线999| 午夜亚洲福利| 亚洲欧美成人网| 亚洲午夜久久久久久久久电影网| 亚洲精品乱码| 亚洲看片网站| 亚洲精品综合久久中文字幕| 亚洲人成在线播放| 91久久精品国产91久久性色tv | 久久av一区二区三区漫画| 午夜激情久久久| 亚洲欧美资源在线| 亚洲欧美激情一区二区| 亚洲一区二区三区免费视频| 在线亚洲免费视频| 亚洲视频狠狠| 亚洲亚洲精品在线观看 | 久久大逼视频| 久久精品日产第一区二区| 久久国产黑丝| 久久理论片午夜琪琪电影网| 久久精品一区蜜桃臀影院| 久久本道综合色狠狠五月| 欧美中文字幕精品|