Как установить и использовать V-Calendar (vue.js)?

Я хочу использовать библиотеку V-Calendar в своем приложении Vuetify. Приложение работало до сих пор, но, к сожалению, мне не удалось правильно установить библиотеку V-Calendar.

Никаких ошибок не отображается, но сайт перестал работать. Он становится полностью белым и ничего не отображается. Я следил за Установка V-Calendar.

Что я пробовал:

1. НПМ

npm install v-calendar

2. v-calendar.js в папке плагинов

  • В папке, где находится main.js: Создан новый файл ./plugins/v-calendar.js

3. v-calendar.js:

import Vue from 'vue';
import VCalendar from 'v-calendar';

// Use v-calendar & v-date-picker components
Vue.use(VCalendar);

export default new VCalendar({
});

4. main.js:

...
import VCalendar from './plugins/v-calendar';
...
new Vue({
  router,
  store,
  vuetify,
  VCalendar,
  render: h => h(App)
}).$mount('#app')

РЕДАКТИРОВАТЬ 1:

Я удалил v-calendar.js. Я обновил main.js (см. ответ @pretzelhammer).

/просмотры/Home.vue:

<v-date-picker v-model = "date" />
export default {
  name: "Home",
  data: () => ({
    date: new Date(),
  }),
};

К сожалению, календарь не отображается. v-calender работает, а v-date-picker не работает.

Обновлено еще раз:

  • 149 Ошибки:
    • Примеры:
      • [Предупреждение Vue]: избегайте использования не примитивного значения в качестве ключа, вместо этого используйте строковое/числовое значение.
      • [Предупреждение Vue]: обнаружены повторяющиеся ключи: «[object Object]». Это может вызвать ошибку обновления.
      • [Предупреждение Vue]: Недопустимая опора: проверка типа не удалась для опоры «значение». Ожидаемый массив, строка, полученная дата. найдено в ---> <VDatePicker>
      • [Vue warn]: ошибка в data(): «TypeError: dateString.split не является функцией». найдено в ---> <VDatePicker>
  • 1 Предупреждение:
    • [Vuetify] Значение должно быть строкой, полученной датой. найдено в ---> <VDatePicker>

Обновление Обновлено еще раз:

  • Я решил следующие две ошибки следующим образом:
    • [Предупреждение Vue]: избегайте использования не примитивного значения в качестве ключа, вместо этого используйте строковое/числовое значение.
    • [Предупреждение Vue]: обнаружены повторяющиеся ключи: «[object Object]». Это может вызвать ошибку обновления.
  • Решение:
v-for = "(item, id) in items" :key = "id"

вместо:

v-for = "item in items" :key = "item"

я не думаю, что вам нужно экспортировать экземпляр VCalendar в файл плагина, и вам также не нужно включать VCalendar в конструктор Vue,

Ali Hassan 13.12.2020 16:59

спасибо @AliHassan, я обновил код, но он все еще не работает.

KplnMoon 13.12.2020 17:46

Получаете ли вы какие-либо ошибки JS на вкладке консоли DevTools? Кроме того, вы используете последнюю версию библиотеки v-calendar?

pretzelhammer 13.12.2020 17:49

Да, v-calendar актуален (v2.1.1) и, к сожалению, у меня много ошибок и предупреждение. (см. вопрос)

KplnMoon 13.12.2020 18:09

@pretzelhammer Я исправил все ошибки «String» с помощью new Date().toISOString(). Теперь у меня есть только следующие ошибки, когда я использую v-date-picker: (1) [Vue warn]: ошибка рендеринга: «RangeError: недопустимое значение времени» и (2) RangeError: недопустимое значение времени

KplnMoon 13.12.2020 19:40

Я думаю, проблема в том, что вы используете v-date-picker из vuetify вместо v-calendar: vuetifyjs.com/en/components/date-pickers

pretzelhammer 13.12.2020 19:47

Ты прав. Если я использую синтаксис на сайте Vuetify, он работает. Но я хотел бы использовать V-Calendar. Я не понимаю, почему это не работает.

KplnMoon 13.12.2020 20:02

Вероятно, это не работает, потому что и Vuetify, и VCalendar пытаются глобально зарегистрировать компонент v-date-picker, что не разрешено.

pretzelhammer 14.12.2020 02:28
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
8
6 546
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не правильно следовали инструкциям. Все, что вам нужно сделать, это:

1. НПМ

npm install v-calendar

2. main.js

import Vue from 'vue';
import VCalendar from 'v-calendar';

// Use v-calendar & v-date-picker components
Vue.use(VCalendar, {
  componentPrefix: 'vc',
});

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app');

И тогда вы сможете использовать компоненты vc-calendar и vc-date-picker в любом из ваших шаблонов Vue.

Спасибо. Я удалил v-calendar.js. В main.js у меня теперь есть именно это от вас, а также импорт для vuetify и т. д. В /views/Home.vue у меня есть следующее: <v-date-picker v-model = "date" /> и в данных: date: new Date(), Теперь я снова вижу все на странице, но не вижу календаря.

KplnMoon 13.12.2020 17:20

Пожалуйста, обновите свой вопрос, указав исходный код для /views/Home.vue.

pretzelhammer 13.12.2020 17:23

Извините, это мой первый вопрос здесь. Я обновил его.

KplnMoon 13.12.2020 17:39

@KplnMoon Я снова обновил свой ответ, теперь он должен работать для вас.

pretzelhammer 14.12.2020 02:29

У меня есть новый вопрос по этой теме, и я был бы рад, если бы вы могли помочь мне и с этим. :) stackoverflow.com/questions/65294969/…

KplnMoon 15.12.2020 13:25

Другие вопросы по теме