Модули Nativescript Vue Core

Мне сложно понять, как использовать модули Framework в nativescript-vue.

Например, я пытаюсь понять, как использовать этот модуль: https://docs.nativescript.org/ns-framework-modules/platform

Нужно ли мне объявлять в App.js / Main.js или в компоненте, который я собираюсь использовать?

Я пришел из веб-разработки с Vue.js, думаю, пример реализации, которому я пытаюсь следовать, будет выглядеть так:

Это пример Интернета, который, как я думаю, будет таким же, как и способ реализации на мобильных устройствах.

В Интернете, если мне нужно было использовать Axios, я бы импортировал его в App.js / Main.js, чтобы оставаться глобальным в приложении, или SPF, чтобы оставаться локальным и иметь возможность вызывать нужные компоненты.

На мобильных устройствах, если я использую чистый nativescript, импорт будет ясным, но в nativescript-vue я не могу понять, как его использовать, я не знаю, настроен он уже по умолчанию или нет.


person AntonioSantos    schedule 19.06.2019    source источник


Ответы (2)


Импортируйте модули там, где они вам нужны, в коде, как app.js, так и SPF.

app.js

import axios from "axios";
var platform = require("tns-core-modules/platform");

var instance = axios.create({ baseURL: "https://myendpoint.com" });
if (platform.isAndroid) { /* ... */ }

File.vue

import axios from "axios";
var platform = require("tns-core-modules/platform");

export default {
    methods: {
        androidFunc() {
            if (platform.isIOS) {
                axios.get("https://website.com/api/ios") // ...
            }
        }
    }
}

Если мне что-то нужно глобально, я обычно использую свойства экземпляра Vue (Vue.prototype. $ MyProperty) или хранилище Vuex.

person TomG    schedule 19.06.2019

Вы должны иметь возможность использовать все модули CommonJS Vue, которые вы использовали в Интернете, то есть они не должны иметь никакой зависимости от специфических функций браузера.

Возможно, вы по-прежнему сможете использовать Axios, поскольку он внутренне не использует ничего, кроме XMLHttpRequest, который является допустимым глобальным объектом в среде NativeScript.

Если у вас есть модуль Vue, который зависит от HTML Dom / document / window / local или хранилища сеансов и т. Д., Он может выйти из строя. К вашему сведению, есть плагины, такие как nativescript-localstorage, которые имитируют такие функции, как локальное / сеансовое хранилище.

person Manoj    schedule 19.06.2019
comment
Вы можете использовать Axios так же, как и во Vue в Интернете. Вам нужно будет установить модуль NPM, импортировать его и начать использовать. Если вам нравится использовать Vue Axious, который позволяет использовать перехватчики, вы все равно можете кодировать его так же, как и в Интернете. Вы должны поместить Vue.use(VueAxios, axios) в свой входной файл в Интернете, чтобы он был доступен для всех компонентов. Точно так же вы разместите его здесь, на app.js, который, как я предполагаю, является точкой входа в ваш проект, где вы должны инициализировать свой первый компонент пользовательского интерфейса с помощью new Vue(...) - person Manoj; 19.06.2019