[{"data":1,"prerenderedAt":1045},["ShallowReactive",2],{"home":3},[4,174,383,462,524,916],{"id":5,"title":6,"alt":6,"body":7,"date":162,"description":163,"extension":164,"image":165,"meta":166,"navigation":167,"ogImage":165,"path":168,"published":167,"seo":169,"stem":170,"tags":171,"__hash__":173},"blog\u002Fblogs\u002F6. how-to-fix-vuex-type-issue.md","How to fix vuex type issue",{"type":8,"value":9,"toc":158},"minimark",[10,15,19,23,38,149,154],[11,12,14],"h3",{"id":13},"introduction","Introduction",[16,17,18],"p",{},"In recent version of our vue project, when we try to add vuex we see type error and vuex type not found. We can easily fix that issue.",[11,20,22],{"id":21},"how-to-fix-that-issue","How to fix that issue",[24,25,26,35],"ol",{},[27,28,29,30,34],"li",{},"Create a ",[31,32,33],"code",{},"vuex.d.ts"," file inside of your route project.",[27,36,37],{},"Pase this code in that file",[39,40,45],"pre",{"className":41,"code":42,"language":43,"meta":44,"style":44},"language-ts shiki shiki-themes dracula","declare module 'vuex' {\n  export * from 'vuex\u002Ftypes\u002Findex.d.ts'\n  export * from 'vuex\u002Ftypes\u002Fhelpers.d.ts'\n  export * from 'vuex\u002Ftypes\u002Flogger.d.ts'\n  export * from 'vuex\u002Ftypes\u002Fvue.d.ts'\n}\n","ts","",[31,46,47,74,95,111,127,143],{"__ignoreMap":44},[48,49,52,56,59,63,67,70],"span",{"class":50,"line":51},"line",1,[48,53,55],{"class":54},"s0Tla","declare",[48,57,58],{"class":54}," module",[48,60,62],{"class":61},"seVfx"," '",[48,64,66],{"class":65},"s-mGx","vuex",[48,68,69],{"class":61},"'",[48,71,73],{"class":72},"sCdxs"," {\n",[48,75,77,80,84,87,89,92],{"class":50,"line":76},2,[48,78,79],{"class":54},"  export",[48,81,83],{"class":82},"sIQBb"," *",[48,85,86],{"class":54}," from",[48,88,62],{"class":61},[48,90,91],{"class":65},"vuex\u002Ftypes\u002Findex.d.ts",[48,93,94],{"class":61},"'\n",[48,96,98,100,102,104,106,109],{"class":50,"line":97},3,[48,99,79],{"class":54},[48,101,83],{"class":82},[48,103,86],{"class":54},[48,105,62],{"class":61},[48,107,108],{"class":65},"vuex\u002Ftypes\u002Fhelpers.d.ts",[48,110,94],{"class":61},[48,112,114,116,118,120,122,125],{"class":50,"line":113},4,[48,115,79],{"class":54},[48,117,83],{"class":82},[48,119,86],{"class":54},[48,121,62],{"class":61},[48,123,124],{"class":65},"vuex\u002Ftypes\u002Flogger.d.ts",[48,126,94],{"class":61},[48,128,130,132,134,136,138,141],{"class":50,"line":129},5,[48,131,79],{"class":54},[48,133,83],{"class":82},[48,135,86],{"class":54},[48,137,62],{"class":61},[48,139,140],{"class":65},"vuex\u002Ftypes\u002Fvue.d.ts",[48,142,94],{"class":61},[48,144,146],{"class":50,"line":145},6,[48,147,148],{"class":72},"}\n",[24,150,151],{"start":97},[27,152,153],{},"That's it. Your are ok to go.",[155,156,157],"style",{},"html pre.shiki code .s0Tla, html code.shiki .s0Tla{--shiki-default:#FF79C6}html pre.shiki code .seVfx, html code.shiki .seVfx{--shiki-default:#E9F284}html pre.shiki code .s-mGx, html code.shiki .s-mGx{--shiki-default:#F1FA8C}html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sIQBb, html code.shiki .sIQBb{--shiki-default:#BD93F9}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":44,"searchDepth":76,"depth":76,"links":159},[160,161],{"id":13,"depth":97,"text":14},{"id":21,"depth":97,"text":22},"9th June 2024","In recent vue project we see that vuex type not working properly. We will fix that type issue and make vuex type workable","md","\u002Fblogs-img\u002Fblog6.jpg",{},true,"\u002Fblogs\u002Fhow-to-fix-vuex-type-issue",{"title":6,"description":163},"blogs\u002F6. how-to-fix-vuex-type-issue",[172,66],"vue","L3rwHYrf8t38XrdC0MNKjaBFTXB2LqibLRoHNuOQ1vQ",{"id":175,"title":176,"alt":177,"body":178,"date":372,"description":373,"extension":164,"image":374,"meta":375,"navigation":167,"ogImage":374,"path":376,"published":167,"seo":377,"stem":378,"tags":379,"__hash__":382},"blog\u002Fblogs\u002F2. fix-tailwindcss-intellisense-in-nuxt3.md","How To Fix TailwindCSS Intellisense In Nuxt3 Project","Hwo to fix tailwind intellisense in nuxt3 project",{"type":8,"value":179,"toc":367},[180,184,195,199,217,221,230,255,361,364],[11,181,183],{"id":182},"problems","Problems",[16,185,186,187,194],{},"I had a Nuxt3 and TailwindCSS project. which was opened in VsCode. But the problem was, in my project the tailwind intellisense didn't working properly. I tried to reinstall the vscode tailwind extension but the problem didn't solve properly. Later after doing some research I found a ",[188,189,193],"a",{"href":190,"rel":191},"https:\u002F\u002Fgithub.com\u002Ftailwindlabs\u002Ftailwindcss-intellisense\u002Fissues\u002F663#issuecomment-1316788128",[192],"nofollow","workaround",", That I am sharing here today.",[11,196,198],{"id":197},"why-its-not-working","Why It's Not working",[16,200,201,202,205,206,209,210,213,214,216],{},"In our nuxt project we have a ",[31,203,204],{},".nuxt"," directory. Nuxt uses the ",[31,207,208],{},".nuxt\u002F"," directory in development to generate your Vue application. And if we try to look properly there is also a file called ",[31,211,212],{},".nuxt\u002Ftailwind.config.cjs",", So tailwind find to config file in the same project, one is in your root directory and another one is in you ",[31,215,204],{}," directory.",[11,218,220],{"id":219},"possible-workaround","Possible Workaround",[16,222,223,224,226,227,229],{},"One possible solution is, In your project we call tell the extension to exclude the ",[31,225,204],{}," directory. To exclude the ",[31,228,204],{}," directory in your workspace,",[231,232,233,239,250],"ul",{},[27,234,29,235,238],{},[31,236,237],{},"\u002F.vscode"," folder in your project's root level.",[27,240,241,242,245,246,249],{},"Inside ",[31,243,244],{},".vscode"," folder add a ",[31,247,248],{},"settings.json"," file",[27,251,252,253,249],{},"Copy the below code to ",[31,254,248],{},[39,256,260],{"className":257,"code":258,"language":259,"meta":44,"style":44},"language-json shiki shiki-themes dracula","\u002F\u002F \u002F.vscode\u002Fsettings.json\n{\n  \"tailwindCSS.files.exclude\": [\n    \"**\u002F.git\u002F**\",\n    \"**\u002Fnode_modules\u002F**\",\n    \"**\u002F.hg\u002F**\",\n    \"**\u002F.svn\u002F**\",\n    \"**\u002F.nuxt\u002F**\"\n  ]\n}\n","json",[31,261,262,268,273,292,305,316,327,339,350,356],{"__ignoreMap":44},[48,263,264],{"class":50,"line":51},[48,265,267],{"class":266},"shSDL","\u002F\u002F \u002F.vscode\u002Fsettings.json\n",[48,269,270],{"class":50,"line":76},[48,271,272],{"class":72},"{\n",[48,274,275,279,283,286,289],{"class":50,"line":97},[48,276,278],{"class":277},"sY8FZ","  \"",[48,280,282],{"class":281},"sLL85","tailwindCSS.files.exclude",[48,284,285],{"class":277},"\"",[48,287,288],{"class":54},":",[48,290,291],{"class":72}," [\n",[48,293,294,297,300,302],{"class":50,"line":113},[48,295,296],{"class":61},"    \"",[48,298,299],{"class":65},"**\u002F.git\u002F**",[48,301,285],{"class":61},[48,303,304],{"class":72},",\n",[48,306,307,309,312,314],{"class":50,"line":129},[48,308,296],{"class":61},[48,310,311],{"class":65},"**\u002Fnode_modules\u002F**",[48,313,285],{"class":61},[48,315,304],{"class":72},[48,317,318,320,323,325],{"class":50,"line":145},[48,319,296],{"class":61},[48,321,322],{"class":65},"**\u002F.hg\u002F**",[48,324,285],{"class":61},[48,326,304],{"class":72},[48,328,330,332,335,337],{"class":50,"line":329},7,[48,331,296],{"class":61},[48,333,334],{"class":65},"**\u002F.svn\u002F**",[48,336,285],{"class":61},[48,338,304],{"class":72},[48,340,342,344,347],{"class":50,"line":341},8,[48,343,296],{"class":61},[48,345,346],{"class":65},"**\u002F.nuxt\u002F**",[48,348,349],{"class":61},"\"\n",[48,351,353],{"class":50,"line":352},9,[48,354,355],{"class":72},"  ]\n",[48,357,359],{"class":50,"line":358},10,[48,360,148],{"class":72},[16,362,363],{},"Hopefully now tailwind intellisense start working properly.",[155,365,366],{},"html pre.shiki code .shSDL, html code.shiki .shSDL{--shiki-default:#6272A4}html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sY8FZ, html code.shiki .sY8FZ{--shiki-default:#8BE9FE}html pre.shiki code .sLL85, html code.shiki .sLL85{--shiki-default:#8BE9FD}html pre.shiki code .s0Tla, html code.shiki .s0Tla{--shiki-default:#FF79C6}html pre.shiki code .seVfx, html code.shiki .seVfx{--shiki-default:#E9F284}html pre.shiki code .s-mGx, html code.shiki .s-mGx{--shiki-default:#F1FA8C}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":44,"searchDepth":76,"depth":76,"links":368},[369,370,371],{"id":182,"depth":97,"text":183},{"id":197,"depth":97,"text":198},{"id":219,"depth":97,"text":220},"26th Jan 2023","In Nuxt3 project tailwind css intellisense doesn't seems to work properly. In this blog I will share a workaround to fix this issue.","\u002Fblogs-img\u002Fblog2.jpg",{},"\u002Fblogs\u002Ffix-tailwindcss-intellisense-in-nuxt3",{"title":176,"description":373},"blogs\u002F2. fix-tailwindcss-intellisense-in-nuxt3",[380,381],"nuxt","tailwindcss","uOf3KNv1McjaTwKt8GNLPTKj_V1pVjYZ_G-VCijfLgw",{"id":384,"title":385,"alt":385,"body":386,"date":451,"description":452,"extension":164,"image":453,"meta":454,"navigation":167,"ogImage":453,"path":455,"published":167,"seo":456,"stem":457,"tags":458,"__hash__":461},"blog\u002Fblogs\u002F1. connect-namecheap-to-vercel.md","How To Connect You Namecheap Domain With Vercel Deployed App",{"type":8,"value":387,"toc":443},[388,390,393,397,400,404,407,410,414,417,420,423,426,430,433,436,440],[11,389,14],{"id":13},[16,391,392],{},"If you've purchased a domain from Namecheap and you want to connect it to your Vercel app, there are a few steps you need to follow. In this blog, we'll guide you through the process of connecting your Namecheap domain with your Vercel app.",[11,394,396],{"id":395},"step-1-add-a-custom-domain-to-your-vercel-app","Step 1: Add a custom domain to your Vercel app",[16,398,399],{},"The first step is to add your custom domain to your Vercel app. To do this, log in to your Vercel account and go to your app dashboard. Click on \"Settings\" and then \"Domains\". Click on \"Add Domain\" and enter your custom domain name. Then click on \"Add\".",[11,401,403],{"id":402},"step-2-get-the-dns-records-from-vercel","Step 2: Get the DNS records from Vercel",[16,405,406],{},"Once you've added your custom domain to your Vercel app, you'll need to get the DNS records from Vercel. To do this, go back to the \"Domains\" section and click on the custom domain you just added. Then click on \"DNS Records\".",[16,408,409],{},"You'll see a list of DNS records that you need to add to your Namecheap account. These include the A record, the CNAME record, and the TXT record.",[11,411,413],{"id":412},"step-3-add-dns-records-to-namecheap","Step 3: Add DNS records to Namecheap",[16,415,416],{},"Now that you have the DNS records from Vercel, you need to add them to your Namecheap account. To do this, log in to your Namecheap account and go to your domain dashboard. Click on \"Advanced DNS\" and then \"Add New Record\".",[16,418,419],{},"Add the A record first. In the \"Type\" dropdown menu, select \"A (Address)\". In the \"Host\" field, enter \"@\" (without the quotes). In the \"Value\" field, enter the IP address from the Vercel DNS records.",[16,421,422],{},"Next, add the CNAME record. In the \"Type\" dropdown menu, select \"CNAME (Alias)\". In the \"Host\" field, enter \"www\" (without the quotes). In the \"Value\" field, enter the value from the Vercel DNS records.",[16,424,425],{},"Finally, add the TXT record. In the \"Type\" dropdown menu, select \"TXT (Text)\". In the \"Host\" field, enter \"@\" (without the quotes). In the \"Value\" field, enter the value from the Vercel DNS records.",[11,427,429],{"id":428},"step-4-verify-dns-records","Step 4: Verify DNS records",[16,431,432],{},"Once you've added the DNS records to your Namecheap account, you need to verify that they're correct. To do this, go back to your Vercel app dashboard and click on the custom domain. Then click on \"Verify DNS Configuration\". Vercel will check if the DNS records have been set up correctly.",[16,434,435],{},"It may take some time for the DNS records to propagate, so be patient. Once the DNS records have propagated, Vercel will verify them and your custom domain will be connected to your Vercel app.",[11,437,439],{"id":438},"conclusion","Conclusion",[16,441,442],{},"Connecting your Namecheap domain to your Vercel app is a relatively simple process. By following the steps outlined in this blog, you'll be able to connect your custom domain in no time. Remember to be patient as it may take some time for the DNS records to propagate. If you run into any issues, don't hesitate to reach out to Vercel support for assistance.",{"title":44,"searchDepth":76,"depth":76,"links":444},[445,446,447,448,449,450],{"id":13,"depth":97,"text":14},{"id":395,"depth":97,"text":396},{"id":402,"depth":97,"text":403},{"id":412,"depth":97,"text":413},{"id":428,"depth":97,"text":429},{"id":438,"depth":97,"text":439},"1st Mar 2023","Here you will lean how to connect your namecheap domain to vercel deployed app.","\u002Fblogs-img\u002Fblog1.jpg",{},"\u002Fblogs\u002Fconnect-namecheap-to-vercel",{"title":385,"description":452},"blogs\u002F1. connect-namecheap-to-vercel",[459,460],"namecheap","vercel","WZbE2cNttQcghQ4tY7OQmoJyNT_26gniNKTP83NTWC8",{"id":463,"title":464,"alt":464,"body":465,"date":451,"description":516,"extension":164,"image":517,"meta":518,"navigation":167,"ogImage":517,"path":519,"published":167,"seo":520,"stem":521,"tags":522,"__hash__":523},"blog\u002Fblogs\u002F3. create-namespace-subdomain-connect-to-vercel.md","How To Create Namespace Subdomain & Connect To Vercel App",{"type":8,"value":466,"toc":508},[467,469,472,476,479,482,486,489,493,496,500,503,505],[11,468,14],{"id":13},[16,470,471],{},"Creating a subdomain on Namecheap and connecting it with a Vercel deployed app is a straightforward process. In this blog, we will guide you through the steps required to create a subdomain on Namecheap and connect it to your Vercel deployed app.",[11,473,475],{"id":474},"step-1-create-a-subdomain-on-namecheap","Step 1: Create a subdomain on Namecheap",[16,477,478],{},"The first step is to create a subdomain on Namecheap. To do this, log in to your Namecheap account and go to your domain dashboard. Click on the \"Advanced DNS\" tab and then click on \"Add New Record\".",[16,480,481],{},"Select \"CNAME (Alias)\" from the \"Type\" dropdown menu. In the \"Host\" field, enter the name of your subdomain (for example, \"app\" if you want your subdomain to be \"app.yourdomain.com\"). In the \"Value\" field, enter the URL of your Vercel deployed app (for example, \"yourapp.vercel.app\").",[11,483,485],{"id":484},"step-2-verify-the-subdomain","Step 2: Verify the subdomain",[16,487,488],{},"After creating the subdomain, you need to verify that it has been set up correctly. To do this, go to your Vercel deployed app dashboard and click on the \"Domains\" tab. Click on \"Add Domain\" and enter the name of your subdomain. Vercel will verify the subdomain and confirm that it has been set up correctly.",[11,490,492],{"id":491},"step-3-add-the-subdomain-to-your-vercel-deployed-app","Step 3: Add the subdomain to your Vercel deployed app",[16,494,495],{},"Now that your subdomain has been verified, you need to add it to your Vercel deployed app. To do this, go to your app dashboard and click on \"Settings\". Click on \"Domains\" and then click on \"Add Domain\". Enter the name of your subdomain and click on \"Add\".",[11,497,499],{"id":498},"step-4-verify-the-subdomain-in-vercel","Step 4: Verify the subdomain in Vercel",[16,501,502],{},"After adding the subdomain to your Vercel deployed app, you need to verify that it has been set up correctly. To do this, click on the subdomain in your Vercel deployed app dashboard. Click on \"Verify DNS Configuration\". Vercel will check that the subdomain has been set up correctly and confirm that it is connected to your Vercel deployed app.",[11,504,439],{"id":438},[16,506,507],{},"Connecting a subdomain on Namecheap to your Vercel deployed app is a simple process that can be done in a few steps. By following the steps outlined in this blog, you can easily create a subdomain on Namecheap and connect it to your Vercel deployed app. Remember to verify your subdomain in both Namecheap and Vercel to ensure that it has been set up correctly. If you encounter any issues, reach out to Vercel support for assistance.",{"title":44,"searchDepth":76,"depth":76,"links":509},[510,511,512,513,514,515],{"id":13,"depth":97,"text":14},{"id":474,"depth":97,"text":475},{"id":484,"depth":97,"text":485},{"id":491,"depth":97,"text":492},{"id":498,"depth":97,"text":499},{"id":438,"depth":97,"text":439},"Here we will learn, How To Create Namespace Subdomain & Connect To Vercel App","\u002Fblogs-img\u002Fblog3.jpg",{},"\u002Fblogs\u002Fcreate-namespace-subdomain-connect-to-vercel",{"title":464,"description":516},"blogs\u002F3. create-namespace-subdomain-connect-to-vercel",[380,460,459],"DP6EONpG4TKA_-_6BmWY-QPCCHwryTQKe5P_aJgYlQk",{"id":525,"title":526,"alt":526,"body":527,"date":451,"description":907,"extension":164,"image":908,"meta":909,"navigation":167,"ogImage":908,"path":910,"published":167,"seo":911,"stem":912,"tags":913,"__hash__":915},"blog\u002Fblogs\u002F4. fetch-content-data-render-pages.md","How To Properly Fetch Nuxt Content Data and Render It in Nuxt Pages",{"type":8,"value":528,"toc":900},[529,531,534,538,541,568,572,575,619,622,626,632,672,675,679,682,897],[11,530,14],{"id":13},[16,532,533],{},"Nuxt.js is a popular open-source framework for building Vue.js applications. With the release of Nuxt 3, developers have access to new features and improvements to streamline the development process. One of these features is Nuxt Content v2, which allows you to create and manage content in a simple and efficient way. In this blog post, we will guide you through the steps to connect Nuxt Content v2 with Nuxt 3.",[11,535,537],{"id":536},"step-1-install-the-necessary-dependencies","Step 1: Install the necessary dependencies",[16,539,540],{},"The first step is to install the necessary dependencies for Nuxt Content v2. To do this, run the following command:",[39,542,546],{"className":543,"code":544,"language":545,"meta":44,"style":44},"language-js shiki shiki-themes dracula","npm install @nuxt\u002Fcontent@next\n\n","js",[31,547,548],{"__ignoreMap":44},[48,549,550,553,556,559,562,565],{"class":50,"line":51},[48,551,552],{"class":72},"npm install @",[48,554,380],{"class":555},"sY_PY",[48,557,558],{"class":54},"\u002F",[48,560,561],{"class":555},"content",[48,563,564],{"class":72},"@",[48,566,567],{"class":555},"next\n",[11,569,571],{"id":570},"step-2-configure-nuxt-content-v2","Step 2: Configure Nuxt Content v2",[16,573,574],{},"Once the dependencies are installed, you need to configure Nuxt Content v2 in your Nuxt 3 project. To do this, create a new file named nuxt.config.js in the root directory of your project and add the following code:",[39,576,578],{"className":543,"code":577,"language":545,"meta":44,"style":44},"export default {\n  \u002F\u002F Enable Nuxt Content module\n  modules: [\n    '@nuxt\u002Fcontent'\n  ],\n\n",[31,579,580,590,595,604,614],{"__ignoreMap":44},[48,581,582,585,588],{"class":50,"line":51},[48,583,584],{"class":54},"export",[48,586,587],{"class":54}," default",[48,589,73],{"class":72},[48,591,592],{"class":50,"line":76},[48,593,594],{"class":266},"  \u002F\u002F Enable Nuxt Content module\n",[48,596,597,600,602],{"class":50,"line":97},[48,598,599],{"class":72},"  modules",[48,601,288],{"class":54},[48,603,291],{"class":72},[48,605,606,609,612],{"class":50,"line":113},[48,607,608],{"class":61},"    '",[48,610,611],{"class":65},"@nuxt\u002Fcontent",[48,613,94],{"class":61},[48,615,616],{"class":50,"line":129},[48,617,618],{"class":72},"  ],\n",[16,620,621],{},"In the above code, we have enabled the Nuxt Content module and set the directory where your content will be stored.",[11,623,625],{"id":624},"step-3-create-content-files","Step 3: Create content files",[16,627,628,629,631],{},"Once Nuxt Content v2 is configured, you can create content files in the specified directory. By default, Nuxt Content v2 supports Markdown and YAML file formats. You can create a new file in the ",[31,630,561],{}," directory with the following structure:",[39,633,636],{"className":634,"code":635,"language":164,"meta":44,"style":44},"language-md shiki shiki-themes dracula","---\ntitle: 'Hello, world!'\n---\n\n# Welcome to Nuxt Content v2\n\nThis is an example of a Markdown file created using Nuxt Content v2.\n",[31,637,638,643,648,653,658,663,667],{"__ignoreMap":44},[48,639,640],{"class":50,"line":51},[48,641,642],{"class":266},"---\n",[48,644,645],{"class":50,"line":76},[48,646,647],{"class":72},"title: 'Hello, world!'\n",[48,649,650],{"class":50,"line":97},[48,651,642],{"class":652},"sMMmS",[48,654,655],{"class":50,"line":113},[48,656,657],{"emptyLinePlaceholder":167},"\n",[48,659,660],{"class":50,"line":129},[48,661,662],{"class":652},"# Welcome to Nuxt Content v2\n",[48,664,665],{"class":50,"line":145},[48,666,657],{"emptyLinePlaceholder":167},[48,668,669],{"class":50,"line":329},[48,670,671],{"class":72},"This is an example of a Markdown file created using Nuxt Content v2.\n",[16,673,674],{},"In the above code, we have created a Markdown file with a title and a sample content.",[11,676,678],{"id":677},"step-4-display-content-on-a-page","Step 4: Display content on a page",[16,680,681],{},"Now that we have created content files, we can display the content on a page. To do this, create a new Vue component in the components directory with the following code:",[39,683,686],{"className":684,"code":685,"language":172,"meta":44,"style":44},"language-vue shiki shiki-themes dracula","\u003Cscript setup lang=\"ts\">\nconst { path } = useRoute()\nconst articles = await queryContent(path).findOne()\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cmain>\n    \u003Cdiv>\n      \u003CContentRenderer :value=\"articles\">\n        \u003Ctemplate #empty>\n          \u003Cp>No content found.\u003C\u002Fp>\n        \u003C\u002Ftemplate>\n      \u003C\u002FContentRenderer>\n    \u003C\u002Fdiv>\n  \u003C\u002Fmain>\n\u003C\u002Ftemplate>\n",[31,687,688,714,731,754,763,767,776,786,796,818,833,848,858,868,878,888],{"__ignoreMap":44},[48,689,690,693,696,699,702,705,707,709,711],{"class":50,"line":51},[48,691,692],{"class":72},"\u003C",[48,694,695],{"class":54},"script",[48,697,698],{"class":555}," setup",[48,700,701],{"class":555}," lang",[48,703,704],{"class":54},"=",[48,706,285],{"class":61},[48,708,43],{"class":65},[48,710,285],{"class":61},[48,712,713],{"class":72},">\n",[48,715,716,719,722,724,728],{"class":50,"line":76},[48,717,718],{"class":54},"const",[48,720,721],{"class":72}," { path } ",[48,723,704],{"class":54},[48,725,727],{"class":726},"sAOxA"," useRoute",[48,729,730],{"class":72},"()\n",[48,732,733,735,738,740,743,746,749,752],{"class":50,"line":97},[48,734,718],{"class":54},[48,736,737],{"class":72}," articles ",[48,739,704],{"class":54},[48,741,742],{"class":54}," await",[48,744,745],{"class":726}," queryContent",[48,747,748],{"class":72},"(path).",[48,750,751],{"class":726},"findOne",[48,753,730],{"class":72},[48,755,756,759,761],{"class":50,"line":113},[48,757,758],{"class":72},"\u003C\u002F",[48,760,695],{"class":54},[48,762,713],{"class":72},[48,764,765],{"class":50,"line":129},[48,766,657],{"emptyLinePlaceholder":167},[48,768,769,771,774],{"class":50,"line":145},[48,770,692],{"class":72},[48,772,773],{"class":54},"template",[48,775,713],{"class":72},[48,777,778,781,784],{"class":50,"line":329},[48,779,780],{"class":72},"  \u003C",[48,782,783],{"class":54},"main",[48,785,713],{"class":72},[48,787,788,791,794],{"class":50,"line":341},[48,789,790],{"class":72},"    \u003C",[48,792,793],{"class":54},"div",[48,795,713],{"class":72},[48,797,798,801,804,807,809,811,814,816],{"class":50,"line":352},[48,799,800],{"class":72},"      \u003C",[48,802,803],{"class":54},"ContentRenderer",[48,805,806],{"class":555}," :value",[48,808,704],{"class":54},[48,810,285],{"class":61},[48,812,813],{"class":65},"articles",[48,815,285],{"class":61},[48,817,713],{"class":72},[48,819,820,823,825,828,831],{"class":50,"line":358},[48,821,822],{"class":72},"        \u003C",[48,824,773],{"class":54},[48,826,827],{"class":72}," #",[48,829,830],{"class":555},"empty",[48,832,713],{"class":72},[48,834,836,839,841,844,846],{"class":50,"line":835},11,[48,837,838],{"class":72},"          \u003C",[48,840,16],{"class":54},[48,842,843],{"class":72},">No content found.\u003C\u002F",[48,845,16],{"class":54},[48,847,713],{"class":72},[48,849,851,854,856],{"class":50,"line":850},12,[48,852,853],{"class":72},"        \u003C\u002F",[48,855,773],{"class":54},[48,857,713],{"class":72},[48,859,861,864,866],{"class":50,"line":860},13,[48,862,863],{"class":72},"      \u003C\u002F",[48,865,803],{"class":54},[48,867,713],{"class":72},[48,869,871,874,876],{"class":50,"line":870},14,[48,872,873],{"class":72},"    \u003C\u002F",[48,875,793],{"class":54},[48,877,713],{"class":72},[48,879,881,884,886],{"class":50,"line":880},15,[48,882,883],{"class":72},"  \u003C\u002F",[48,885,783],{"class":54},[48,887,713],{"class":72},[48,889,891,893,895],{"class":50,"line":890},16,[48,892,758],{"class":72},[48,894,773],{"class":54},[48,896,713],{"class":72},[155,898,899],{},"html pre.shiki code .sCdxs, html code.shiki .sCdxs{--shiki-default:#F8F8F2}html pre.shiki code .sY_PY, html code.shiki .sY_PY{--shiki-default:#50FA7B;--shiki-default-font-style:italic}html pre.shiki code .s0Tla, html code.shiki .s0Tla{--shiki-default:#FF79C6}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shSDL, html code.shiki .shSDL{--shiki-default:#6272A4}html pre.shiki code .seVfx, html code.shiki .seVfx{--shiki-default:#E9F284}html pre.shiki code .s-mGx, html code.shiki .s-mGx{--shiki-default:#F1FA8C}html pre.shiki code .sMMmS, html code.shiki .sMMmS{--shiki-default:#BD93F9;--shiki-default-font-weight:bold}html pre.shiki code .sAOxA, html code.shiki .sAOxA{--shiki-default:#50FA7B}",{"title":44,"searchDepth":76,"depth":76,"links":901},[902,903,904,905,906],{"id":13,"depth":97,"text":14},{"id":536,"depth":97,"text":537},{"id":570,"depth":97,"text":571},{"id":624,"depth":97,"text":625},{"id":677,"depth":97,"text":678},"Here we will learn How To Properly Fetch Nuxt Content Data and Render It in Nuxt Pages","\u002Fblogs-img\u002Fblog4.jpg",{},"\u002Fblogs\u002Ffetch-content-data-render-pages",{"title":526,"description":907},"blogs\u002F4. fetch-content-data-render-pages",[380,914],"nuxt-content","YHdqUsWdUM39wh_fGBpgDa4L9fkV0hARQpGKwPAc2yc",{"id":917,"title":918,"alt":918,"body":919,"date":1035,"description":1036,"extension":164,"image":1037,"meta":1038,"navigation":167,"ogImage":1037,"path":1039,"published":167,"seo":1040,"stem":1041,"tags":1042,"__hash__":1044},"blog\u002Fblogs\u002F5. vue3-awesome-library.md","Some Awesome Libraries For Vue3",{"type":8,"value":920,"toc":1028},[921,923,926,930,933,966,970,973,993,997,1023,1025],[11,922,14],{"id":13},[16,924,925],{},"Vue.js is a popular JavaScript framework for building web applications. It offers a lot of flexibility and ease of use, making it a go-to choice for many developers. One of the advantages of Vue.js is its rich library ecosystem. In this blog post, we will introduce you to some of the awesome libraries for Vue.js in different categories.",[11,927,929],{"id":928},"essential","Essential",[16,931,932],{},"Some libraries are must have when you are start working with new project, here are my list",[231,934,935,942,948,954,960],{},[27,936,937,941],{},[938,939,940],"strong",{},"Vue Router",": Vue Router is the official router for Vue.js. It deeply integrates with Vue.js core to make building Single Page Applications with Vue.js a breeze",[27,943,944,947],{},[938,945,946],{},"Pinia",": Pinia started as an experiment to redesign what a Store for Vue could look like with the Composition API around November 2019.",[27,949,950,953],{},[938,951,952],{},"VueUse",": VueUse is a collection of utility functions based on Composition API. We assume you are already familiar with the basic ideas of Composition API before you continue.",[27,955,956,959],{},[938,957,958],{},"Vitest",": Vitest is a blazing fast unit test framework powered by Vite.",[27,961,962,965],{},[938,963,964],{},"Vue Macro",": Vue Macros is a library that implements proposals or ideas that have not been officially implemented by Vue. That means it will explore and extend more features and syntax sugar to Vue.",[11,967,969],{"id":968},"ui-libraries","UI Libraries",[16,971,972],{},"UI libraries provide pre-built components and styles for building user interfaces. Here are some popular UI libraries for Vue.js:",[231,974,975,981,987],{},[27,976,977,980],{},[938,978,979],{},"Naive UI",": A Vue 3 Component Library Fairly Complete, Theme Customizable, Uses TypeScript, Fast Kinda Interesting",[27,982,983,986],{},[938,984,985],{},"Vuetify",": Vue Component Framework Vuetify is a no design skills required UI Library with beautifully handcrafted Vue Components.",[27,988,989,992],{},[938,990,991],{},"Vuestic",": You can create a new project or integrate Vuestic UI into an existing application. There are three ways to create new Vuestic App. All of them mostly the same and provides the same features.",[11,994,996],{"id":995},"others","Others",[231,998,999,1005,1011,1017],{},[27,1000,1001,1004],{},[938,1002,1003],{},"VueFire",": VueFire Official Firebase bindings for Vue.js",[27,1006,1007,1010],{},[938,1008,1009],{},"Vue I118",": Vue I18n Internationalization plugin for Vue.js",[27,1012,1013,1016],{},[938,1014,1015],{},"Vue Auto Animate",": Add motion to your apps with a single line of code.",[27,1018,1019,1022],{},[938,1020,1021],{},"Vuelidate",": Vuelidate is considered model-based because the validation rules are defined next to your data, and the validation tree structure matches the data model structure.",[11,1024,439],{"id":438},[16,1026,1027],{},"In this blog post, we have introduced you to some of the awesome libraries for Vue.js in different categories. These libraries can help you build better and more engaging web applications with Vue.js. Remember to choose the right library based on your project requirements and always refer to the documentation for usage and integration instructions. If you encounter any issues, reach out to the Vue.js community for assistance.",{"title":44,"searchDepth":76,"depth":76,"links":1029},[1030,1031,1032,1033,1034],{"id":13,"depth":97,"text":14},{"id":928,"depth":97,"text":929},{"id":968,"depth":97,"text":969},{"id":995,"depth":97,"text":996},{"id":438,"depth":97,"text":439},"1st Jan 2023","Vue.js is a popular JavaScript framework for building web applications. In this blog post, we will introduce you to some of the awesome libraries for Vue.js in different categories.","\u002Fblogs-img\u002Fblog5.jpg",{},"\u002Fblogs\u002Fvue3-awesome-library",{"title":918,"description":1036},"blogs\u002F5. vue3-awesome-library",[172,1043],"javascript","rd0RYidt8iCdhK48JmYI1AXWDdt8DUdtGWvFYHhXpKM",1777303145412]