File tree 4 files changed +54
-35
lines changed
4 files changed +54
-35
lines changed Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div class =" card shadow-none p-3 m-5 rounded " >
3
- <div class =" card-header" v-if =" $slots.default" >
4
- <slot ></slot >
5
- </div >
6
- <div class =" card-body" >
3
+ <div class =" card-header" v-if =" $slots.default" >
4
+ <slot ></slot >
5
+ </div >
6
+ <div class =" card-body" >
7
7
<slot name =" body" >
8
8
<div class =" alert alert-danger" >
9
9
default content
10
10
</div >
11
11
</slot >
12
- </div >
13
-
14
-
15
- <div class =" card-footer" v-if =" $slots.footer" >
16
- <slot name =" footer" :count =" count" ></slot >
17
- </div >
12
+ </div >
13
+ <div class =" card-footer" v-if =" $slots.footer" >
14
+ <slot name =" footer" :count =" count" ></slot >
15
+ </div >
18
16
</div >
19
- </template >
20
-
21
- <script setup>
17
+ </template >
18
+
19
+ <script setup>
22
20
import { ref } from ' vue' ;
23
21
24
22
25
- const count = ref (0 );
23
+ const count = ref (0 );
26
24
27
- const id = setInterval (() => {
28
- count .value = count .value + 10 ;
25
+ const id = setInterval (() => {
26
+ count .value = count .value + 10 ;
29
27
30
- if (count .value > 300 ){
28
+ if (count .value > 300 ) {
31
29
clearInterval (id);
32
30
}
33
-
34
- }, 3000 );
35
-
36
- </script >
37
-
38
- <style >
39
-
40
- </style >
31
+
32
+ }, 3000 );
33
+
34
+ </script >
35
+
36
+ <style ></style >
Original file line number Diff line number Diff line change 1
1
<template >
2
2
<div class =" container" >
3
3
<BaseCardVue >
4
-
5
-
6
-
7
-
8
4
<template #[slotName ]>
9
5
<h1 >card content</h1 >
10
6
<h2 >{{ username }}</h2 >
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ import { ref } from 'vue'
15
15
// Simulating API calls
16
16
17
17
const fetchUser = () => {
18
- return new Promise ((reslove ) => {
18
+ return new Promise ((reslove , reject ) => {
19
19
setTimeout (() => {
20
20
reslove ({ id: 1 , name: " naresh jupalle" , email: " naresh.jupalle410@gmail.com" });
21
21
}, 1000 );
@@ -31,8 +31,16 @@ const fetchPosts = (userId) => new Promise(resolve =>
31
31
32
32
// Async setup
33
33
34
- console .log (await fetchUser ())
35
- console .log (await fetchPosts ())
36
- const user = ref (await fetchUser ())
37
- const posts = ref (await fetchPosts (user .value .id ))
34
+ // console.log(await fetchUser())
35
+ // console.log(await fetchPosts())
36
+ const user = ref (null );
37
+ const posts = ref (null )
38
+ try {
39
+ user .value = await fetchUser ()
40
+ posts .value = await fetchPosts (user .value .id )
41
+ }catch (e) {
42
+ console .log (" an error occured" )
43
+ console .log (e);
44
+ }
45
+
38
46
</script >
Original file line number Diff line number Diff line change 1
1
<template >
2
2
3
- <Suspense >
3
+ <!-- @error-captured="handleError" -->
4
+ <Suspense >
4
5
<template #default >
5
6
<user-dashboard ></user-dashboard >
6
7
</template >
14
15
15
16
<script setup>
16
17
import UserDashboard from ' ./UserDashboard.vue' ;
18
+ import { onErrorCaptured } from ' vue' ;
19
+
20
+
21
+ // one way of doing
22
+ // onErrorCaptured((error) => {
23
+ // debugger;
24
+ // console.log(error);
25
+ // })
26
+
27
+ // second listening event on suspense tag.
28
+
29
+ // function handleError(error) {
30
+ // debugger
31
+ // console.log(error)
32
+ // }
33
+
34
+
35
+
17
36
</script >
You can’t perform that action at this time.
0 commit comments