Как условно отрендерить JS в созданном () или смонтированном () - PullRequest
0 голосов
/ 25 марта 2019

Я использую Nuxt JS 2.4.5 и создаю статический веб-сайт в режиме SPA, где запуск npm run build && npm run generate сгенерирует мой веб-сайт в каталоге dist/.

Я пытаюсь выяснить, как я могу сделать оператор if () {} else {} в mounted() или created(), чтобы проверить, запускаю ли я свой проект в режиме разработки или в режиме производства / создания веб-сайта, чтобы я мог включить фрагмент Google Analytics или условно отобразить другой контент на странице в зависимости от режима.

Я просмотрел документацию и обнаружил следующее: https://nuxtjs.org/api/configuration-dev, который, похоже, мне поможет, но пока не применял это на практике, так как не уверен в лучший подход и ищу руководство или пример.

Я потенциально думаю попробовать следующее:

Макеты / default.vue

...
mounted () {
  if (process.env.NODE_ENV == 'production') {
    // run code on generated static site, e.g: Google Analytics
  } else {
    // run code if in dev mode, e.g: http://localhost:3000/
  }
}
...

... а затем в моем файле package.json мне нужно было бы потенциально установить рабочий режим с помощью команды generate , которая создает сайт с помощью: NODE_ENV=production

package.json

"scripts": {
    "dev": "nuxt",
    "build": "nuxt build",
    "start": "nuxt start",
    "generate": "NODE_ENV=production nuxt generate"
  }

Если я тогда запусту npm run build && npm run generate, он должен создать мой статический веб-сайт, и код Google Analytics должен работать.

Мне бы очень хотелось узнать, как другие люди делают это и их решения, я пытаюсь заставить Google Analytics работать на каждой странице, и, таким образом, каталог раскладок кажется хорошим местом для размещения кода.

1 Ответ

1 голос
/ 26 марта 2019

Я бы настроил это на created() или beforeCreate() в default.vue. Нет жестких и быстрых правил против такой настройки.

Если бы вы делали это не с Nuxt, а с ванильным Vue, я бы поместил его в файл main.js, где инициализируется Vue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...