Вы можете столкнуться с ошибкой, если хотите запустить тег скрипта только для определенного компонента во Vue.
Попробуем добавить скрипт в шаблон компонента:
<script src="..." ></script>
Создавая это, Vue выдает ошибку: «Шаблоны должны отвечать только за отображение состояния в пользовательский интерфейс. Избегайте размещения тегов с побочными эффектами в ваших шаблонах, таких как скрипт, поскольку они не будут анализироваться. »
Это простое решение, несмотря на то, что поиск в Интернете может поставить вас на более сложный путь. Просто добавьте type = ”application / javascript” в свой тег скрипта. Фиксированный.
<script type="application/javascript" src="..."></script>
Вы можете перестать читать здесь. Но что, если ваш скрипт содержит document.write. Ваш скрипт не будет работать и выдает следующую ошибку в консоли: «Не удалось выполнить 'write' в 'Document': невозможно выполнить запись в документ из асинхронно загруженного внешнего скрипта, если это явно не указано. открыт. ”
Это происходит потому, что документ был полностью проанализирован и закрыт. Тогда вы не сможете писать ему, по крайней мере, как хотите.
Решить эту проблему можно с помощью postscribe. (см. гиперссылку для других подходов, кроме установки NPM)
npm i postscribe --save
Затем в смонтированном жизненном цикле компонента Vue вы можете добавить тег скрипта следующим образом.
<template> <div id="gist"></div> </template> <script> /* eslint-disable no-useless-escape */ import postscribe from 'postscribe' export default { name: 'Gist-Example', mounted: function () { postscribe('#gist', `<script src="https://gist.github.com/gautemo/d6b309c2bafe8f611f239b82f4f5501f.js"><\/script>`) } } </script>
Поздравляем, теперь вы встроили суть в свой компонент Vue!
Спасибо за чтение!
Не стесняйтесь подписываться на меня в Твиттере на @GauteMeekOlsen
Эта статья изначально была опубликована на gaute.app