前提
本、これからはじめるvue.js3実践入門を勉強してます。本ではコンポーネントがローカル登録になっていないのでローカル登録に直してます。
実現したいこと
これからはじめるvue.js3実践入門p.191、『非同期リクエスト時の待ち受けメッセージを表示する』
suspense使わない
ローカル登録に変更
発生している問題・エラーメッセージ
何も表示されずコンソールには以下が表示されました。
SyntaxError: Unexpected token '.'. Expected a ':' following the property name 'Vue'.
該当のソースコード
html
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4<meta charset="UTF-8" /> 5<title>Vue.js</title> 6</head> 7<body> 8<div id="app"> 9 <my-heavy /> 10</div> 11<script src="https://cdn.jsdelivr.net/npm/vue@3.2.29/dist/vue.global.js"></script> 12<script src="suspense_obj.js"></script> 13</body> 14</html>
javascript
1const MyHeavy={ 2 Vue.defineAsyncComponent({ 3 loader() { 4 return new Promise((resolve, reject) => { 5 setTimeout(() => { 6 resolve({ 7 data() { 8 return { name: 'Suspense' }; 9 }, 10 template: `<div>お待たせしました。{{ name }}です!</div>` 11 }); 12 }, 5000); 13 }) 14 }, 15 16 loadingComponent: { 17 template: `Now Loading...` 18 }, 19 delay: 500, 20 errorComponent: { 21 template: `Loading Error!!` 22 }, 23 timeout: 7000, 24 suspensible: false 25 }) 26}; 27 28 29Vue.createApp({ 30 components:{ 31 'my-heavy':MyHeavy 32 } 33}).mount('#app'); 34
試したこと
本の通りにjavascriptを変更したら正しく実行されたのでjavascriptの問題だと思います。
補足情報(FW/ツールのバージョンなど)
vue3.2.29
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。