Оф. документация советует не использовать .pragma library для хранения application-wide данных (например, констант). Вместо этого советуют использовать синглетон QObject - очевидно, как C++ класс с множеством полей Q_PROPERTY, в которых будут хранится наши константы:
http://doc.qt.io/qt-5/qtquick-performance.htmlUse singleton types instead of pragma library scripts
If you are using a pragma library script to store application-wide instance data, consider using a QObject singleton type instead. This should result in better performance, and will result in less JavaScript heap memory being used.
Например, был файл constants.js:
Javascript
.pragma library
var X = 10;
и многими другими константами. Мы переделываем в C++
C++ (Qt)
class Constants : public QObject
{
...
Q_PROPERTY(X READ X CONSTANT)
...
};
В тоже время когда-то читал, что не стоит злоупотреблять вызовами из JS к С++ коду, т.к. они не быстрые. У меня обращений к константам много, сотни. Не понимаю, почему рекомендуют использовать QObject? Разве это будет быстрее, чем .pragma library?