diff --git a/.gitignore b/.gitignore
index 4f548e6b75..e52da2f480 100644
--- a/.gitignore
+++ b/.gitignore
@@ -98,6 +98,7 @@ dist/
# vitepress build output
.vitepress/dist
.vitepress/cache
+.vitepress/.temp
# Serverless directories
.serverless/
@@ -110,3 +111,6 @@ src/api/index.json
src/examples/data.json
src/tutorial/data.json
draft.md
+
+# folders created by IDE
+.idea
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000000..e941d13c20
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+package-manager-strict=false
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000000..65a7d0588f
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+*.vue
diff --git a/.vitepress/config.ts b/.vitepress/config.ts
index 9f5b89be2b..80c74de089 100644
--- a/.vitepress/config.ts
+++ b/.vitepress/config.ts
@@ -1,7 +1,8 @@
import fs from 'fs'
import path from 'path'
-import { defineConfigWithTheme } from 'vitepress'
+import { defineConfigWithTheme, type HeadConfig, type Plugin } from 'vitepress'
import type { Config as ThemeConfig } from '@vue/theme'
+import llmstxt from 'vitepress-plugin-llms'
import baseConfig from '@vue/theme/config'
import { headerPlugin } from './headerMdPlugin'
// import { textAdPlugin } from './textAdMdPlugin'
@@ -45,11 +46,12 @@ const nav: ThemeConfig['nav'] = [
text: 'Resources',
items: [
{ text: 'Partners', link: '/partners/' },
+ { text: 'Developers', link: '/developers/' },
{ text: 'Themes', link: '/ecosystem/themes' },
{ text: 'UI Components', link: 'https://ui-libs.vercel.app/' },
{
text: 'Certification',
- link: 'https://certification.vuejs.org/?ref=vuejs-nav'
+ link: 'https://certificates.dev/vuejs/?ref=vuejs-nav'
},
{ text: 'Jobs', link: 'https://vuejobs.com/?ref=vuejs' },
{ text: 'T-Shirt Shop', link: 'https://vue.threadless.com/' }
@@ -113,6 +115,7 @@ const nav: ThemeConfig['nav'] = [
link: '/about/community-guide'
},
{ text: 'Code of Conduct', link: '/about/coc' },
+ { text: 'Privacy Policy', link: '/about/privacy' },
{
text: 'The Documentary',
link: 'https://www.youtube.com/watch?v=OrxmtDw4pVI'
@@ -124,9 +127,13 @@ const nav: ThemeConfig['nav'] = [
link: '/sponsor/'
},
{
- text: 'Partners',
- link: '/partners/',
- activeMatch: `^/partners/`
+ text: 'Experts',
+ badge: { text: 'NEW' },
+ activeMatch: `^/(partners|developers)/`,
+ items: [
+ { text: 'Partners', link: '/partners/' },
+ { text: 'Developers', link: '/developers/', badge: { text: 'NEW' } }
+ ]
}
]
@@ -175,15 +182,15 @@ export const sidebar: ThemeConfig['sidebar'] = {
link: '/guide/essentials/event-handling'
},
{ text: 'Form Input Bindings', link: '/guide/essentials/forms' },
- {
- text: 'Lifecycle Hooks',
- link: '/guide/essentials/lifecycle'
- },
{ text: 'Watchers', link: '/guide/essentials/watchers' },
{ text: 'Template Refs', link: '/guide/essentials/template-refs' },
{
text: 'Components Basics',
link: '/guide/essentials/component-basics'
+ },
+ {
+ text: 'Lifecycle Hooks',
+ link: '/guide/essentials/lifecycle'
}
]
},
@@ -367,6 +374,10 @@ export const sidebar: ThemeConfig['sidebar'] = {
{
text: 'Dependency Injection',
link: '/api/composition-api-dependency-injection'
+ },
+ {
+ text: 'Helpers',
+ link: '/api/composition-api-helpers'
}
]
},
@@ -416,6 +427,7 @@ export const sidebar: ThemeConfig['sidebar'] = {
{
text: 'Advanced APIs',
items: [
+ { text: 'Custom Elements', link: '/api/custom-elements' },
{ text: 'Render Function', link: '/api/render-function' },
{ text: 'Server-Side Rendering', link: '/api/ssr' },
{ text: 'TypeScript Utility Types', link: '/api/utility-types' },
@@ -485,10 +497,6 @@ export const sidebar: ThemeConfig['sidebar'] = {
text: 'List with Transitions',
link: '/examples/#list-transition'
},
- {
- text: 'TodoMVC',
- link: '/examples/#todomvc'
- }
]
},
{
@@ -559,9 +567,24 @@ export const sidebar: ThemeConfig['sidebar'] = {
// const i18n: ThemeConfig['i18n'] = {
// }
+function inlineScript(file: string): HeadConfig {
+ return [
+ 'script',
+ {},
+ fs.readFileSync(
+ path.resolve(__dirname, `./inlined-scripts/${file}`),
+ 'utf-8'
+ )
+ ]
+}
+
export default defineConfigWithTheme
The
Progressive
@@ -39,10 +38,22 @@ onMounted(async () => {
Install
+
+ Get Security Updates for Vue 2
+
+
No other costs.
+One month trial period, thereafter, one month notice period.
+{{ desc.content }}
+ +
+ {{ partnerConfig.pageHeroBanner.description1 }}
+
+ {{ partnerConfig.pageHeroBanner.description2 }}
+
+
{{ partnerConfig.pageHeroBanner.footer }}
+ +{{ prependText }}
+ +{{ appendText }}
+process.env.NODE_ENV
is replaced with `"production"` during build.
Additional references:
diff --git a/src/guide/built-ins/keep-alive-demos/CompA.vue b/src/guide/built-ins/keep-alive-demos/CompA.vue
index 58f01003ac..eaf6daf9fb 100644
--- a/src/guide/built-ins/keep-alive-demos/CompA.vue
+++ b/src/guide/built-ins/keep-alive-demos/CompA.vue
@@ -5,6 +5,6 @@ const count = ref(0)
Current component: A
- count: {{ count }} + Count: {{ count }} diff --git a/src/guide/built-ins/keep-alive.md b/src/guide/built-ins/keep-alive.md index c4fbec72c9..8d202f1876 100644 --- a/src/guide/built-ins/keep-alive.md +++ b/src/guide/built-ins/keep-alive.md @@ -135,8 +135,7 @@ Note that: - `onActivated` is also called on mount, and `onDeactivated` on unmount. -- Both hooks work for not only the root component cached by `This sentence is important!
``` @@ -36,35 +49,33 @@ const vFocus = {This sentence is important!
- Vue Partners are Vue-team endorsed agencies that provide first-class - Vue consulting and development services. If your company is - interested in being listed as a partner, please - register your interest here. -
-+ Vue Partners are Vue-team endorsed agencies that provide first-class + Vue consulting and development services. If your company is + interested in being listed as a partner, please + register your interest here. +
+ +- Generate leads for new projects, boost your credibility to your - clients, and support the long term sustainability of Vue.js and its - ecosystem. -
- Become a partner -