🌎 Предварительное планирование: работает ли Three.js, пока рядом находится библиотека jQuery? — Вопросы
бен 1
Я планирую использовать jQuery в интерфейсе, который я разрабатываю, а не непосредственно в разработке Three.js.
Какой у вас опыт использования библиотеки jQuery во время работы с Three.js?
- Является ли использование библиотеки jQuery плохой практикой?
- Смогу ли я в конце концов отказаться от jQuery и вернуться к чистому ванильному JS?
- Какие побочные эффекты могут возникнуть при использовании jQuery?
- Что еще я могу упустить?
Огнезвезд
Почему jQuery должен быть плохой практикой? По сути, это просто упрощает работу с dom, но представляет собой довольно голую / свободную библиотеку, а не структурированную структуру для пользовательского интерфейса. Большинство «виджетов» и библиотек достаточно инкапсулированы и многое приходится жестко кодировать, это зависит от масштаба вашего проекта, но есть и более структурированные фреймворки, основанные на jQuery. Размер самой библиотеки не имеет значения, если вам не нужно максимизировать скорость загрузки.
Как уже упоминалось, это зависит от масштаба, лично я бы не стал использовать его, кроме демо, мелких хакерских штучек.
Пока вы не запускаете какие-либо выборки css, такие как
Например,$('#health').text(player.health)
в цикле рендеринга, нет большой разницы, и большинство функций jQuery в основном оборачивают только самые основные вещи. в функции для цепочки вызовов.$element.text('Hello')
совпадает с$element[0].textContent = 'Hello'
. Вы скорее сохраняете код для различных задач.
2 лайка
бен 3
Это простота jQuery в разработке определенных задач быстрее, чем чистый ванильный javascript.
Например: https://codepen.io/francisco/pen/drbHq
Я поражен методом sortable() , таким простым, но какой хаос я приношу библиотеке Three.js, используя эти урезанные методы только для разработки интерфейса?
Снова не используется sortable() напрямую с Three.js.
Огнезвезд 4
Я действительно не понимаю, как это должно быть связано с THREE, но область jQuery использует dom для структуры приложения, а не наоборот, поэтому, если вы хотите отсортировать список дочерних элементов Object3D, вам придется синхронизировать это с реальным массивом.
1 Нравится
бен 5
Ааа да DOM Я забыл, jQuery не зависит от Three.js
Я думал, что присутствие jQuery каким-то образом сделает что-то сумасшедшее с движком Three.js.
Поймите цикл, если я запрашиваю множество вещей, которые представляют собой потенциальную угрозу.
Да, я не манипулирую Object3D, у меня есть таксономия (механизм классификации), который я использую вместе с движком Three.js — независимый интерфейс от 3D-движка
6
Я не думаю, что это должно быть проблемой — использование двух фреймворков, которые одновременно хотят управлять DOM, может быть проблемой (например, jQuery + React), но threejs не затрагивает DOM.
В наши дни jQuery немного «менее крута/современна», чем другие библиотеки для управления DOM, но это неплохая практика и уж точно не несовместима с three.js.
2 лайка
бен 7
Приятно слышать, что jQuery — жизнеспособный вариант, спасибо!
Я думал об использовании React, я знаю, что это уходит от темы. Но я думаю, что наши читатели могут столкнуться с той же проблемой.
Теперь услышать, что jQuery не работает честно с React, — это облом.
Так что мне, вероятно, следует подумать об использовании JSX, а не jQuery?
https://www.quora.com/Is-it-a-bad-idea-to-use-React-and-Jquery-together
8
У меня нет личного опыта работы с комбинацией jQuery/React, но вообще любой фреймворк, управляющий DOM…
- react
- jquery
- угловой
- д3
- вью
- магистраль
- …
… вызовет некоторые головные боли при использовании вместе с другой структурой, управляющей DOM, если только вы не будете очень осторожны с их использованием. В частности, для D3 есть рекомендации по решению этих проблем, но для других я бы посоветовал просто выбрать один, особенно если вы только начинаете новый проект.
Связано: https://discuss.reactjs.org/t/jquery-with-react/683/14
2 «Нравится»
Автозаполнение | Пользовательский интерфейс jQuery
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
|