feat(router): Add feature provider for enabling hash navigation#48301
Closed
atscott wants to merge 1 commit intoangular:mainfrom
Closed
feat(router): Add feature provider for enabling hash navigation#48301atscott wants to merge 1 commit intoangular:mainfrom
atscott wants to merge 1 commit intoangular:mainfrom
Conversation
alxhub
approved these changes
Dec 12, 2022
3c1d027 to
f9d3c6c
Compare
The argument against this feature:
Firstly, this isn't a navigation strategy that's very commonly desired.
Secondly, the hash strategy is a location configuration in `@angular/common`
and you can use it outside of the Router or with any custom router implementations.
So while the net effect of using the router is that it updates the URL which is
controlled by the strategy, this feature provider doesn't necessarily need to
exist in the Router. The location strategy is an application-wide configuration
and affects anything that imports `Location`. Of course, the Router does this
in a few places but plenty of other things might as well.
The argument for this feature:
* Discoverability. While `LocationStrategy` is technically in `@angular/common`, the most
common use-case _is_ when using it with the Router.
* Precedence in the `RouterModule.forRoot([], {useHash: true})`
* Precedence in other routing libraries (`createWebHashHistory` in VueJS
and `HashRouter` in React, for example)
* The implementation of `withHashLocation` is much more clear than
`useHash` was. You can look at the function and see that all it's
doing is adding the `HashLocationStrategy` to the providers list.
resolves angular#48295 / angular#47986
f9d3c6c to
c34208d
Compare
jessicajaniuk
approved these changes
Dec 12, 2022
Contributor
jessicajaniuk
left a comment
There was a problem hiding this comment.
reviewed-for: public-api
pkozlowski-opensource
approved these changes
Dec 13, 2022
Member
pkozlowski-opensource
left a comment
There was a problem hiding this comment.
reviewed-for: public-api
Contributor
|
This PR was merged into the repository by commit f58ad86. |
crapStone
pushed a commit
to Calciumdibromid/CaBr2
that referenced
this pull request
Jan 12, 2023
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@angular/animations](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fanimations/15.0.4/15.1.0) | | [@angular/common](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fcommon/15.0.4/15.1.0) | | [@angular/compiler](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fcompiler/15.0.4/15.1.0) | | [@angular/compiler-cli](https://github.com/angular/angular/tree/main/packages/compiler-cli) ([source](https://github.com/angular/angular)) | devDependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fcompiler-cli/15.0.4/15.1.0) | | [@angular/core](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fcore/15.0.4/15.1.0) | | [@angular/forms](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fforms/15.0.4/15.1.0) | | [@angular/platform-browser](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fplatform-browser/15.0.4/15.1.0) | | [@angular/platform-browser-dynamic](https://github.com/angular/angular) | dependencies | minor | [`15.0.4` -> `15.1.0`](https://renovatebot.com/diffs/npm/@angular%2fplatform-browser-dynamic/15.0.4/15.1.0) | --- ### Release Notes <details> <summary>angular/angular</summary> ### [`v15.1.0`](https://github.com/angular/angular/blob/HEAD/CHANGELOG.md#​1510-2023-01-10) [Compare Source](angular/angular@15.0.4...15.1.0) #### Deprecations ##### router - CanLoad guards in the Router are deprecated. Use CanMatch instead. - router writable properties The following strategies are meant to be configured by registering the application strategy in DI via the `providers` in the root `NgModule` or `bootstrapApplication`: - `routeReuseStrategy` - `titleStrategy` - `urlHandlingStrategy` The following options are meant to be configured using the options available in `RouterModule.forRoot` or `provideRouter`. - `onSameUrlNavigation` - `paramsInheritanceStrategy` - `urlUpdateStrategy` - `canceledNavigationResolution` The following options are available in `RouterModule.forRoot` but not available in `provideRouter`: - `malformedUriErrorHandler` - This was found to not be used anywhere internally. - `errorHandler` - Developers can instead subscribe to `Router.events` and filter for `NavigationError`. ##### common | Commit | Type | Description | | -- | -- | -- | | [fe50813664](angular/angular@fe50813) | feat | Add BrowserPlatformLocation to the public API ([#​48488](angular/angular#48488)) | | [2f4f0638c7](angular/angular@2f4f063) | fix | Add data attribtue to NgOptimizedImage ([#​48497](angular/angular#48497)) | ##### compiler | Commit | Type | Description | | -- | -- | -- | | [a532d71975](angular/angular@a532d71) | feat | allow self-closing tags on custom elements ([#​48535](angular/angular#48535)) | | [caf7228f8a](angular/angular@caf7228) | fix | resolve deprecation warning ([#​48652](angular/angular#48652)) | | [33f35b04ef](angular/angular@33f35b0) | fix | type-only symbols incorrectly retained when downlevelling custom decorators ([#​48638](angular/angular#48638)) | ##### compiler-cli | Commit | Type | Description | | -- | -- | -- | | [caedef0f5b](angular/angular@caedef0) | fix | update `@babel/core` dependency and lock version ([#​48634](angular/angular#48634)) | ##### core | Commit | Type | Description | | -- | -- | -- | | [6acae1477a](angular/angular@6acae14) | feat | Add `TestBed.runInInjectionContext` to help test functions which use `inject` ([#​47955](angular/angular#47955)) | | [38421578a2](angular/angular@3842157) | feat | Make the `isStandalone()` function available in public API ([#​48114](angular/angular#48114)) | | [dd42974b07](angular/angular@dd42974) | feat | support TypeScript 4.9 ([#​48005](angular/angular#48005)) | ##### forms | Commit | Type | Description | | -- | -- | -- | | [8aa8b4b77c](angular/angular@8aa8b4b) | fix | Form provider FormsModule.withConfig return a FormsModule ([#​48526](angular/angular#48526)) | ##### language-service | Commit | Type | Description | | -- | -- | -- | | [5f0b53c735](angular/angular@5f0b53c) | feat | Allow auto-imports to suggest multiple possible imports. ([#​47787](angular/angular#47787)) | | [6a8ea29a04](angular/angular@6a8ea29) | fix | expose `package.json` for vscode extension resolution ([#​48678](angular/angular#48678)) | | [ce8160ecb2](angular/angular@ce8160e) | fix | Prevent crashes on unemitable references ([#​47938](angular/angular#47938)) | | [e615b598ba](angular/angular@e615b59) | fix | ship `/api` entry-point ([#​48670](angular/angular#48670)) | | [6ce7d76a0e](angular/angular@6ce7d76) | fix | update packages/language-service/build.sh script to work with vscode-ng-language-service's new Bazel build ([#​48663](angular/angular#48663)) | ##### localize | Commit | Type | Description | | -- | -- | -- | | [a1a8e91eca](angular/angular@a1a8e91) | fix | add triple slash type reference on `@angular/localize` on \`ng add ([#​48502](angular/angular#48502)) | ##### migrations | Commit | Type | Description | | -- | -- | -- | | [cc284afbbc](angular/angular@cc284af) | fix | combine newly-added imports in import manager ([#​48620](angular/angular#48620)) | ##### router | Commit | Type | Description | | -- | -- | -- | | [228e992db7](angular/angular@228e992) | docs | Deprecate canLoad guards in favor of canMatch ([#​48180](angular/angular#48180)) | | [0a8b8a66cd](angular/angular@0a8b8a6) | docs | Deprecate public members of Router that are meant to be configured elsewhere ([#​48006](angular/angular#48006)) | | [332461bd0c](angular/angular@332461b) | feat | Add ability to override `onSameUrlNavigation` default per-navigation ([#​48050](angular/angular#48050)) | | [f58ad86e51](angular/angular@f58ad86) | feat | Add feature provider for enabling hash navigation ([#​48301](angular/angular#48301)) | | [73f03ad2d2](angular/angular@73f03ad) | feat | Add new NavigationSkipped event for ignored navigations ([#​48024](angular/angular#48024)) | | [3fe75710d9](angular/angular@3fe7571) | fix | page refresh should not destroy history state ([#​48540](angular/angular#48540)) | #### Special Thanks Alan Agius, Alex Castle, Alex Rickabaugh, Andrew Kushnir, Andrew Scott, Bob Watson, Charles Lyding, Derek Cormier, Doug Parker, Dylan Hunn, George Kalpakas, Greg Magolan, Jessica Janiuk, JiaLiPassion, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Pawel Kozlowski, Renan Ferro, Tim Gates, Vadim, Virginia Dooley, ced, mgechev, piyush132000, robertIsaac and sr5434 <!-- CHANGELOG SPLIT MARKER --> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC45Ny41IiwidXBkYXRlZEluVmVyIjoiMzQuOTkuMiJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1719 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
trekladyone
pushed a commit
to trekladyone/angular
that referenced
this pull request
Feb 1, 2023
…lar#48301) The argument against this feature: Firstly, this isn't a navigation strategy that's very commonly desired. Secondly, the hash strategy is a location configuration in `@angular/common` and you can use it outside of the Router or with any custom router implementations. So while the net effect of using the router is that it updates the URL which is controlled by the strategy, this feature provider doesn't necessarily need to exist in the Router. The location strategy is an application-wide configuration and affects anything that imports `Location`. Of course, the Router does this in a few places but plenty of other things might as well. The argument for this feature: * Discoverability. While `LocationStrategy` is technically in `@angular/common`, the most common use-case _is_ when using it with the Router. * Precedence in the `RouterModule.forRoot([], {useHash: true})` * Precedence in other routing libraries (`createWebHashHistory` in VueJS and `HashRouter` in React, for example) * The implementation of `withHashLocation` is much more clear than `useHash` was. You can look at the function and see that all it's doing is adding the `HashLocationStrategy` to the providers list. resolves angular#48295 / angular#47986 PR Close angular#48301
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


The argument against this feature:
This isn't a navigation strategy that's very commonly desired. Secondly, the hash strategy is a location configuration in
@angular/commonand you can use it outside of the Router or with any custom router implementations. So while the net effect of using the router is that it updates the URL which is controlled by the strategy, this feature provider doesn't necessarily need to exist in the Router. The location strategy is an application-wide configuration and affects anything that importsLocation. Of course, the Router does this in a few places but plenty of other things might as well.The argument for this feature:
LocationStrategyis technically in@angular/common, the most common use-case is when using it with the Router.RouterModule.forRoot([], {useHash: true})createWebHashHistoryin VueJS andHashRouterin React, for example)withHashLocationis much more clear thanuseHashwas. You can look at the function and see that all it's doing is adding theHashLocationStrategyto the providers list.resolves #48295 / #47986