Como começar rapidamente com o VUE3.0: A base para aprender
este artigo veio de uma entrevista que me perguntaram: se os componentes vue e react precisam interoperar e reutilizar, como implementá-los com elegância?
Exceto que os desenvolvedores transferem o código manualmente. Atualmente, só consigo pensar em duas soluções
: Converter código vue e código de reação (sincronização da biblioteca de componentes).
Solução 2: permitir que os componentes vue sejam executados diretamente no projeto React e vice-versa.
Vejamos primeiro a implementação
O componente vue foi renderizado normalmente no react, e também cliquei no botão 3 vezes . A resposta e a renderização do vue também foram normais
O princípio de implementação é
introduzir a versão completa do vue (se você considerar o desempenho, você pode introduzi-lo sob demanda),
esperar até o estágio componentDidMount, montar <div id="vueApp" />
e então
new Vue(..).$mount('#vueApp')
import Vue from 'vue/dist/vue.min.js' //Introduza a versão completa, caso contrário a sintaxe do objeto componente do vue não pode ser analisada export default class App extends Component { construtor(adereços) { super(adereços) } componenteDidMount() { const Foo = { modelo: ` <div> <h1>Estou certo: {{aaa}}</h1> <h1>Estou certo: {{aaa}}</h1> <h1>Estou certo: {{aaa}}</h1> <button @click="aaa++">Botão</button> </div> `, dados () { retornar { aaa: 2222 } } } novoVue({ renderizar: h => h(Foo), }).$mount('#vueApp') } renderizar() { retornar ( <div> <h1>Atualmente no projeto react</h1> <h1>Atualmente no projeto react</h1> O seguinte irá renderizar o componente vue <div id="vueApp" /> </div> ) } }
Nota:
Se você só precisa oferecer suporte ao objeto de opção de componente do vue, então você não precisa configurar
o objeto de opção de componente do webpack refere-se a:
const Foo = {. modelo: ` <div> <h1>Estou certo: {{aaa}}</h1> <h1>Estou certo: {{aaa}}</h1> <h1>Estou certo: {{aaa}}</h1> <button @click="aaa++">Botão</button> </div> `, dados () { retornar { aaa: 2222 } } }
versão avançada aqui se refere a: necessidade de suporte a arquivos/componentes .vue (a demonstração acima é diretamente o objeto de opção do componente, não há arquivo .vue
Por exemplo: (continue a usar a demonstração acima e altere um arquivo
.vue).algumas linhas)
import Foo from "./Foo.vue";
import Vue from 'vue/dist/vue.min.js' //Introduza a versão completa, caso contrário a sintaxe do objeto componente do vue não pode ser analisada import Foo de "./ Foo.vue"; exportar classe padrão App estende componente { ... componenteDidMount() { novoVue({ renderizar: h => h(Foo), }).$mount('#vueApp') } ... }
Para que isso tenha efeito, você precisa configurar o
// Em webpack.config.js const { VueLoaderPlugin } = require ('vue-loader') módulo.exportações = { modo: 'desenvolvimento', módulo: { regras: [ { teste: /.vue$/, carregador: 'vue-loader' } ] }, plug-ins: [ // certifique-se de incluir o plugin para a magia novo VueLoaderPlugin() ] }
Nota:
É recomendado que, ao testar, não use projetos de scaffolding react , mas use projetos react que configuram webpack.config.js do zero.
Quando eu usar a versão mais recente do scaffolding, após executar eject, vá para webpack.config. js Escrever nele reportará um erro porque VueLoaderPlugin não é compatível com uma sintaxe oneOf.
Se você não precisar analisar o arquivo .vue e usar diretamente a sintaxe do objeto de opção de componente do vue, não será necessário configurar o vue-loader adicional.
é recomendado que você não use react durante o teste. Para um projeto com scaffold , use um projeto react que configure webpack.config.js do zero.
Se você não precisar analisar o arquivo .vue e usar diretamente o vue. sintaxe do objeto de opção de componente, então não há necessidade de configuração adicional do vue-loader.
Finalmente, para comparação, os componentes React do projeto vue são usados em projetos react e os componentes vue são usados em projetos react.
Preciso configurar o carregador de webpack.config.js? | |
---|---|
Ao usar o componente react em um projeto vue | sim , você precisa configurar o babel-loader e compilar o arquivo .jsx . Você precisa prestar atenção extra à opção de configurar o babel-loader |
usar o componente vue em um projeto react | não |
, se você não precisar analisar o arquivo .vue, use vue diretamente. Se a sintaxe do objeto de opção do componente for usada, não será necessário configurar o vue-loader adicionalmente. Se você precisar oferecer suporte a arquivos .vue , precisará configurar o vue-loader. |
Este artigo foi reproduzido de: https://juejin.cn/post/7083303446161391623
Autor: bigtree.