Skip to content

Commit aa628d7

Browse files
update internal links (vuejs#1459)
1 parent 01da975 commit aa628d7

15 files changed

+26
-26
lines changed

src/about/community-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ Apart from answering questions and sharing resources in the forum and chat, ther
6969

7070
I hope that right now, you're reading this sentence in your preferred language. If not, would you like to help us get there?
7171

72-
See the [Translations guide](/translations/#contributing-to-translations) for more details on how you can get involved.
72+
See the [Translations guide](/translations/) for more details on how you can get involved.
7373

7474
### Become a Community Leader
7575

src/about/team/members-partner.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,15 @@
172172
"projects": [
173173
{
174174
"label": "nuxt/*",
175-
"url": "nuxt/*"
175+
"url": "https://github.com/nuxt"
176176
},
177177
{
178178
"label": "nuxt-community/*",
179-
"url": "nuxt-community/*"
179+
"url": "https://github.com/nuxt-community"
180180
},
181181
{
182182
"label": "vue-flexboxgrid",
183-
"url": "vue-flexboxgrid"
183+
"url": "https://github.com/alexchopin/vue-flexboxgrid"
184184
}
185185
],
186186
"socials": {

src/api/built-in-directives.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Update the element's text content.
88

99
- **Details**
1010

11-
`v-text` works by setting the element's [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) property, so it will overwrite any existing content inside the element. If you need to update the part of `textContent`, you should use [mustache interpolations](/guide/essentials/template-syntax.html#text) instead.
11+
`v-text` works by setting the element's [textContent](https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent) property, so it will overwrite any existing content inside the element. If you need to update the part of `textContent`, you should use [mustache interpolations](/guide/essentials/template-syntax.html#text-interpolation) instead.
1212

1313
- **Example**
1414

@@ -251,7 +251,7 @@ Attach an event listener to the element.
251251

252252
- **See also:**
253253
- [Event Handling](/guide/essentials/event-handling.html)
254-
- [Components - Custom Events](/guide/essentials/component-basics.html#listening-to-child-components-events)
254+
- [Components - Custom Events](/guide/essentials/component-basics.html#listening-to-events)
255255

256256
## v-bind
257257

@@ -370,14 +370,14 @@ Denote named slots or slots that expect to receive props.
370370

371371
- **Shorthand:** `#`
372372

373-
- **Expects:** JavaScript expression that is valid in a function argument position (supports destructuring in [supported environments](/guide/components/slots.html#destructuring-slot-props)). Optional - only needed if expecting props to be passed to the slot.
373+
- **Expects:** JavaScript expression that is valid in a function argument position, including support for destructuring. Optional - only needed if expecting props to be passed to the slot.
374374

375375
- **Argument:** slot name (optional, defaults to `default`)
376376

377377
- **Limited to:**
378378

379379
- `<template>`
380-
- [components](/guide/components/slots.html#abbreviated-syntax-for-lone-default-slots) (for a lone default slot with props)
380+
- [components](/guide/components/slots.html#scoped-slots) (for a lone default slot with props)
381381

382382
- **Example:**
383383

@@ -460,7 +460,7 @@ Render the element and component once only, and skip future updates.
460460
Since 3.2, you can also memoize part of the template with invalidation conditions using [`v-memo`](#v-memo).
461461

462462
- **See also:**
463-
- [Data Binding Syntax - interpolations](/guide/essentials/template-syntax.html#text)
463+
- [Data Binding Syntax - interpolations](/guide/essentials/template-syntax.html#text-interpolation)
464464
- [v-memo](#v-memo)
465465

466466
## v-memo <sup class="vt-badge" data-text="3.2+" />

src/api/sfc-spec.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ Additional custom blocks can be included in a `*.vue` file for any project-speci
6868
- [vite-plugin-vue-gql: `<gql>`](https://github.com/wheatjs/vite-plugin-vue-gql)
6969
- [vue-i18n: `<i18n>`](https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n#i18n-custom-block)
7070

71-
Handling of Custom Blocks will depend on tooling - if you want to build your own custom block integrations, see [relevant tooling section](/guide/scaling-up/tooling.html#custom-blocks-integration) for more details.
71+
Handling of Custom Blocks will depend on tooling - if you want to build your own custom block integrations, see [relevant tooling section](/guide/scaling-up/tooling.html#sfc-custom-block-integrations) for more details.
7272

7373
## Automatic Name Inference
7474

src/guide/best-practices/security.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ You may be able to imagine how allowing user-provided content for a `<style>` el
137137
<style>{{ userProvidedStyles }}</style>
138138
```
139139

140-
To keep your users fully safe from click jacking, we recommend only allowing full control over CSS inside a sandboxed iframe. Alternatively, when providing user control through a style binding, we recommend using its [object syntax](/guide/essentials/class-and-style.html#object-syntax-2) and only allowing users to provide values for specific properties it's safe for them to control, like this:
140+
To keep your users fully safe from click jacking, we recommend only allowing full control over CSS inside a sandboxed iframe. Alternatively, when providing user control through a style binding, we recommend using its [object syntax](/guide/essentials/class-and-style.html#binding-to-objects-1) and only allowing users to provide values for specific properties it's safe for them to control, like this:
141141

142142
```vue-html
143143
<a

src/guide/components/attrs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ outline: deep
88
99
## Attribute Inheritance
1010

11-
A "fallthrough attribute" is an attribute or `v-on` event listener that is passed to a component, but is not explicitly declared in the receiving component's [props](./props) or [emits](./events.html#defining-custom-events). Common examples of this include `class`, `style`, and `id` attributes.
11+
A "fallthrough attribute" is an attribute or `v-on` event listener that is passed to a component, but is not explicitly declared in the receiving component's [props](./props) or [emits](./events.html#declaring-emitted-events). Common examples of this include `class`, `style`, and `id` attributes.
1212

1313
When a component renders a single root element, fallthrough attributes will be automatically added to the root element's attributes. For example, given a `<MyButton>` component with the following template:
1414

src/guide/essentials/component-basics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ defineEmits(['enlarge-text'])
418418

419419
</div>
420420

421-
This documents all the events that a component emits and optionally [validates them](/guide/components/events.html#validate-emitted-events). It also allows Vue to avoid implicitly applying them as native listeners to the child component's root element.
421+
This documents all the events that a component emits and optionally [validates them](/guide/components/events.html#events-validation). It also allows Vue to avoid implicitly applying them as native listeners to the child component's root element.
422422

423423
<div class="composition-api">
424424

src/guide/essentials/computed.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ Try to change the value of the `books` array in the application `data` and you w
8989

9090
You can data-bind to computed properties in templates just like a normal property. Vue is aware that `this.publishedBooksMessage` depends on `this.author.books`, so it will update any bindings that depend on `this.publishedBooksMessage` when `this.author.books` changes.
9191

92-
See also: [Typing Computed Properties](/guide/typescript/options-api.html#typing-computed) <sup class="vt-badge ts" />
92+
See also: [Typing Computed Properties](/guide/typescript/options-api.html#typing-computed-properties) <sup class="vt-badge ts" />
9393

9494
</div>
9595

src/guide/essentials/conditional.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ Generally speaking, `v-if` has higher toggle costs while `v-show` has higher ini
103103
## `v-if` with `v-for`
104104

105105
::: warning Note
106-
It's **not** recommended to use `v-if` and `v-for` on the same element due to implicit precedence. Refer to [style guide](/style-guide/#avoid-v-if-with-v-for-essential) for details.
106+
It's **not** recommended to use `v-if` and `v-for` on the same element due to implicit precedence. Refer to [style guide](/style-guide/rules-essential.html#avoid-v-if-with-v-for) for details.
107107
:::
108108

109109
When `v-if` and `v-for` are both used on the same element, `v-if` will be evaluated first. See the [list rendering guide](list#v-for-with-v-if) for details.

src/guide/essentials/list.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ Similar to template `v-if`, you can also use a `<template>` tag with `v-for` to
220220
## `v-for` with `v-if`
221221

222222
:::warning Note
223-
It's **not** recommended to use `v-if` and `v-for` on the same element due to implicit precedence. Refer to [style guide](/style-guide/#avoid-v-if-with-v-for-essential) for details.
223+
It's **not** recommended to use `v-if` and `v-for` on the same element due to implicit precedence. Refer to [style guide](/style-guide/rules-essential.html#avoid-v-if-with-v-for) for details.
224224
:::
225225

226226
When they exist on the same node, `v-if` has a higher priority than `v-for`. That means the `v-if` condition will not have access to variables from the scope of the `v-for`:
@@ -271,7 +271,7 @@ When using `<template v-for>`, the `key` should be placed on the `<template>` co
271271
`key` here is a special attribute being bound with `v-bind`. It should not be confused with the property key variable when [using `v-for` with an object](#v-for-with-an-object).
272272
:::
273273

274-
[It is recommended](/style-guide/#keyed-v-for-essential) to provide a `key` attribute with `v-for` whenever possible, unless the iterated DOM content is simple (i.e. contains no components or stateful DOM elements), or you are intentionally relying on the default behavior for performance gains.
274+
[It is recommended](/style-guide/rules-essential.html#use-keyed-v-for) to provide a `key` attribute with `v-for` whenever possible, unless the iterated DOM content is simple (i.e. contains no components or stateful DOM elements), or you are intentionally relying on the default behavior for performance gains.
275275

276276
The `key` binding expects primitive values - i.e. strings and numbers. Do not use objects as `v-for` keys. For detailed usage of the `key` attribute, please see the [`key` API documentation](/api/built-in-special-attributes.html#key).
277277

src/guide/extras/composition-api-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ If you intend to exclusively use Composition API (along with the options listed
102102

103103
### Can I use both APIs together?
104104

105-
Yes. You can use Composition API via the [`setup()`](/api/composition-api-setup.html#setup) option in an Options API component.
105+
Yes. You can use Composition API via the [`setup()`](/api/composition-api-setup.html) option in an Options API component.
106106

107107
However, we only recommend doing so if you have an existing Options API codebase that needs to integrate with new features / external libraries written with Composition API.
108108

src/guide/extras/reactivity-transform.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ There are two pain points with the current `defineProps()` usage in `<script set
109109

110110
1. Similar to `.value`, you need to always access props as `props.x` in order to retain reactivity. This means you cannot destructure `defineProps` because the resulting destructured variables are not reactive and will not update.
111111

112-
2. When using the [type-only props declaration](https://v3.vuejs.org/api/sfc-script-setup.html#typescript-only-features), there is no easy way to declare default values for the props. We introduced the `withDefaults()` API for this exact purpose, but it's still clunky to use.
112+
2. When using the [type-only props declaration](/api/sfc-script-setup.html#typescript-only-features), there is no easy way to declare default values for the props. We introduced the `withDefaults()` API for this exact purpose, but it's still clunky to use.
113113

114114
We can address these issues by applying the same logic for reactive variables destructure to `defineProps`:
115115

src/guide/extras/web-components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ Inside the component, slots can be rendered using the `<slot/>` element as usual
169169

170170
#### Provide / Inject
171171

172-
The [Provide / Inject API](/guide/components/provide-inject.html#provide-inject) and its [Composition API equivalent](/api/composition-api-dependency-injection.html#provide-inject) also work between Vue-defined custom elements. However, note that this works **only between custom elements**. i.e. a Vue-defined custom element won't be able to inject properties provided by a non-custom-element Vue component.
172+
The [Provide / Inject API](/guide/components/provide-inject.html#provide-inject) and its [Composition API equivalent](/api/composition-api-dependency-injection.html#provide) also work between Vue-defined custom elements. However, note that this works **only between custom elements**. i.e. a Vue-defined custom element won't be able to inject properties provided by a non-custom-element Vue component.
173173

174174
### SFC as Custom Element
175175

src/style-guide/rules-strongly-recommended.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ components/
337337

338338
## Self-closing components
339339

340-
**Components with no content should be self-closing in [Single-File Components](/guide/scaling-up/sfc.html), string templates, and [JSX](/guide/extras/render-function.html#jsx) - but never in DOM templates.**
340+
**Components with no content should be self-closing in [Single-File Components](/guide/scaling-up/sfc.html), string templates, and [JSX](/guide/extras/render-function.html#jsx-tsx) - but never in DOM templates.**
341341

342342
Components that self-close communicate that they not only have no content, but are **meant** to have no content. It's the difference between a blank page in a book and one labeled "This page intentionally left blank." Your code is also cleaner without the unnecessary closing tag.
343343

@@ -431,15 +431,15 @@ OR
431431

432432
## Component name casing in JS/JSX
433433

434-
**Component names in JS/[JSX](/guide/extras/render-function.html#jsx) should always be PascalCase, though they may be kebab-case inside strings for simpler applications that only use global component registration through `app.component`.**
434+
**Component names in JS/[JSX](/guide/extras/render-function.html#jsx-tsx) should always be PascalCase, though they may be kebab-case inside strings for simpler applications that only use global component registration through `app.component`.**
435435

436436
::: details Detailed Explanation
437437
In JavaScript, PascalCase is the convention for classes and prototype constructors - essentially, anything that can have distinct instances. Vue components also have instances, so it makes sense to also use PascalCase. As an added benefit, using PascalCase within JSX (and templates) allows readers of the code to more easily distinguish between components and HTML elements.
438438

439439
However, for applications that use **only** global component definitions via `app.component`, we recommend kebab-case instead. The reasons are:
440440

441441
- It's rare that global components are ever referenced in JavaScript, so following a convention for JavaScript makes less sense.
442-
- These applications always include many in-DOM templates, where [kebab-case **must** be used](#component-name-casing-in-templates-strongly-recommended).
442+
- These applications always include many in-DOM templates, where [kebab-case **must** be used](#component-name-casing-in-templates).
443443
:::
444444

445445
<div class="style-example style-example-bad">
@@ -529,7 +529,7 @@ components/
529529

530530
## Prop name casing
531531

532-
**Prop names should always use camelCase during declaration, but kebab-case in templates and [JSX](/guide/extras/render-function.html#jsx).**
532+
**Prop names should always use camelCase during declaration, but kebab-case in templates and [JSX](/guide/extras/render-function.html#jsx-tsx).**
533533

534534
We're simply following the conventions of each language. Within JavaScript, camelCase is more natural. Within HTML, kebab-case is.
535535

@@ -567,7 +567,7 @@ props: {
567567

568568
**Elements with multiple attributes should span multiple lines, with one attribute per line.**
569569

570-
In JavaScript, splitting objects with multiple properties over multiple lines is widely considered a good convention, because it's much easier to read. Our templates and [JSX](/guide/extras/render-function.html#jsx) deserve the same consideration.
570+
In JavaScript, splitting objects with multiple properties over multiple lines is widely considered a good convention, because it's much easier to read. Our templates and [JSX](/guide/extras/render-function.html#jsx-tsx) deserve the same consideration.
571571

572572
<div class="style-example style-example-bad">
573573
<h3>Bad</h3>

src/style-guide/rules-use-with-caution.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ app.component('TodoItem', {
155155

156156
Managing state on `this.$root` and/or using a global event bus can be convenient for very simple cases, but it is not appropriate for most applications.
157157

158-
[Vuex](/guide/scaling-up/state-management.html#vuex) is the official flux-like implementation for Vue, and offers not only a central place to manage state, but also tools for organizing, tracking, and debugging state changes. It integrates well in the Vue ecosystem (including full [Vue DevTools](/guide/quick-start.html#browser-devtools) support).
158+
[Vuex](/guide/scaling-up/state-management.html#vuex) is the official flux-like implementation for Vue, and offers not only a central place to manage state, but also tools for organizing, tracking, and debugging state changes. It integrates well in the Vue ecosystem (including full [Vue DevTools](/guide/scaling-up/tooling.html#browser-devtools) support).
159159

160160
<div class="style-example style-example-bad">
161161
<h3>Bad</h3>

0 commit comments

Comments
 (0)