Mixin метода в Vue из другого файла - PullRequest
0 голосов
/ 08 января 2019

Я хотел бы поделиться методом в Vue между файлами. Я пробовал разные предложения (после гуглинга), не заставляя его работать. Я получил mixin, работающий в том же файле - но не с импортом из другого файла.

Это работает (сразу после импорта части под тегом скрипта):

// import ipsecMixin from '../shared'
   var ipsecMixin = {
     methods: {
       IpsecKodeRemote: function(
         [kode here...]
          ....
    export default {
       name: 'MurSerit',
       props: {
         ....
       },
       mixins: [ipsecMixin],
       computed: {

Но затем я пытаюсь переместить код во внешний файл (и импортирую, как вы видите в части, закомментированной в примере выше):

var ipsecMixin = {
  methods: {
   IpsecKodeRemote: function(
     [kode here...]
export { ipsecMixin }

Я получаю ошибку компонента.

vue.runtime.esm.js?2b0e:587 [Vue warn]: Error in render: "TypeError: Cannot read property 'components' of undefined"

found in

---> <Modl2l> at src/components/Modl2l.vue
   <Form> at src/components/Form.vue
     <HelloWorld> at src/components/HelloWorld.vue
       <Home> at src/views/Home.vue
         <App> at src/App.vue
           <Root>

Почему и как это решить?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Если вы экспортируете явные переменные, как это:

export { ipsecMixin }

Вам также нужно будет импортировать его как переменную:

import { ipsecMixin } from '../shared'

Вы также можете использовать импорт / экспорт по умолчанию, например:

// in shared.js
export default ipsecMixin = {
  methods: {
    IpsecKodeRemote: function(){},
  }
}

// in your component file
import myIpSecMixin from '../shared'

Обратите внимание, как при импорте / экспорте по умолчанию вы можете называть импорт по своему усмотрению, но при экспорте явных имен переменных вы также должны ссылаться на него как на то же имя.

Возможно, вы захотите взглянуть на то, как использовать импорт es6 здесь

0 голосов
/ 08 января 2019

Вам необходимо экспортировать ipsecMix как что-то, например, const.

внешний файл

export const ipsecMixin = {
  methods: {
   IpsecKodeRemote: function(
     [kode here...]
...