recherche

Maison  >  Questions et réponses  >  le corps du texte

Fonctions de calcul séparées partagées par la compilation Vue dans des packages distincts

<p>Comment partager du code commun <code>vue/nuxt</code>spécifique entre différents packages ? </p> <p>Je ne souhaite pas utiliser <code>monorepo</code>, mais j'ai du code partagé que je souhaite séparer dans son propre package. Ce code partagé (nouveau package) est écrit en utilisant <code>@nuxtjs/composition-api</code>, uniquement le <code>calculé</code> et <code> /templates ;méthodes</code>. </p> <p>Je ne souhaite pas que ce package soit configuré en tant que plugin. Au lieu de cela, importez directement pour profiter du tremblement d'arbre (tout comme <code>composition-api</code>). </p> <p>Je suis habitué à utiliser <code>rollupjs</code> pour créer des modules importables. </p> <pre class="brush:php;toolbar:false;">//Nouveau package //index.js exporter { par défaut comme isTrue } depuis './src/isTrue' ... //src/estVrai importer { calculé } depuis '@nuxtjs/composition-api' exporter par défaut (p) => return calculated(() => p === 'true') //Je ne sais pas si cela va détruire la réactivité ? ! ? ! }</pré> <p>Je n'ai eu aucun problème à le compiler aux formats <code>.ssr, .esm, .min</code> via <code>rollupjs</code></p> <p>Le problème se produit lorsque j'importe un nouveau package dans un fichier de travail. </p> <pre class="brush:php;toolbar:false;">importer { isTrue } depuis 'new-package' exporter par défaut{ nom : 'testComp', configuration (accessoires) { retour { estActive : isTrue(props.active) } }</pré> <p> produira : </p> <pre class="brush:php;toolbar:false;">[vue-composition-api] Vue.use(VueCompositionAPI) doit être appelée avant d'utiliser des fonctions. ≪/pré> <p>Je comprends que <code>@nuxtjs/composition-api</code> est un wrapper pour VueCompositionAPI. </p> <p>Je ne souhaite pas installer le nouveau package en tant que plugin, j'omet donc l'installation du nouveau package (exemple d'installation : https://github.com/wuruoyun/vue-component-lib-starter/blob /master/src/install .js)</p>
P粉421119778P粉421119778528 Il y a quelques jours730

répondre à tous(1)je répondrai

  • P粉242535777

    P粉2425357772023-09-02 00:26:17

    Utilisé options API

    //library.js
    export default function(){ // 访问 this -> 箭头函数没有 this
       return this.disabled == true // 当使用 options api 时,这将是 vue 上下文,即属性 disabled
    }

    Utilisez rollupjs pour compiler library.js et l'importer

    //component.vue
    import { isDisabled } from 'library'
    
    export default {
      //Composition API:
      setup(props){
       return {
        //stuff
       }
      },
      //Options API:
      computed:{
        isDisabled,
      }
    }

    répondre
    0
  • Annulerrépondre