Это правильный способ импортировать gsap в vue.js (это работает, но является ли это «правильным» способом?)

#javascript #vue.js #import #libraries #gsap

#javascript #vue.js #импорт #библиотеки #gsap

Вопрос:

Я совсем новичок в Vue.js и у меня были некоторые проблемы с получением библиотек для работы без получения сообщения «ошибка ‘X’ не определена no-undef».

В этом случае это «Back», который не определен (который является частью GSAP) Я полагал, что единственное место для «определения» будет в импорте.

Это просто способ импорта библиотек? Должен ли я писать каждую неопределенную часть в импорте таким образом? Это работает, но это просто кажется ненужным.

 <template>
  <div id="mainTemplate">
    <h2>This is the MainTemplaye.vue Component</h2>

    <div ref="box" class="box"></div>
  </div>
</template>

<script>
import { TimelineLite, Back } from "gsap";

export default {
  name: "MainTemplate",
  mounted() {
    const { box } = this.$refs;
    const timeline = new TimelineLite();

    timeline.to(box, 1, { x: 200, rotation: 90, ease: Back.easeInOut, })
    timeline.to(box, 0.5, { background: 'green' },'-=0.5')
  },
};
</script>

<style>
.box {
  height: 60px;
  width: 60px;
  background: red;
}
</style>  

Комментарии:

1. Любая переменная должна быть импортирована / объявлена, если вы собираетесь ссылаться на нее. Исключение составляет, если он доступен глобально, например, если вы зарегистрировали его в window ( window.gsap = gasp ) , но это не лучшая практика. Если вы не хотите импортировать вещи везде, вы можете зарегистрировать их в плагине vue, и они будут доступны в component ( this.$gsap ) . Но делайте это только с вещами, которые вы действительно часто используете, поскольку это раздувает ваши компоненты.

2. Спасибо @Josh Dean, это было то, что я искал 🙂

Ответ №1:

Я не уверен, откуда вы учитесь, но вы используете старый синтаксис GSAP. Если вы используете новый синтаксис GSAP, вам не нужно импортировать ничего gsap , кроме вашего случая:

 import { gsap } from "gsap";

export default {
  name: "MainTemplate",
  mounted() {
    const { box } = this.$refs;
    const timeline = gsap.timeline();

    timeline.to(box, { duration: 1, x: 200, rotation: 90, ease: 'back.inOut' })
    timeline.to(box, { background: 'green' }, '-=0.5')
  },
};
  

Лучшее место для начала обучения — это официальная статья GSAP Getting Started .

Комментарии:

1. Хорошо, интересно, я пропустил дату статьи, она датирована 2018 годом. Ссылка на статью: blog.usejournal.com/vue-js-gsap-animations-26fc6b1c3c5a Самое смешное, что GSAP ссылается на эту статью в официальной статье GSAP «Начало работы». Я бы хотел проголосовать, но у меня низкая репутация.