history#createPath JavaScript Examples
The following examples show how to use
history#createPath.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: react-router.js From Learning-Redux with MIT License | 5 votes |
function createURL(location) {
return typeof location === "string" ? location : createPath(location);
}
Example #2
Source File: StaticRouter.js From Learning-Redux with MIT License | 5 votes |
function createURL(location) {
return typeof location === "string" ? location : createPath(location);
}
Example #3
Source File: react-router.js From spring-boot-ecommerce with Apache License 2.0 | 5 votes |
function createURL(location) {
return typeof location === "string" ? location : createPath(location);
}
Example #4
Source File: StaticRouter.js From spring-boot-ecommerce with Apache License 2.0 | 5 votes |
function createURL(location) {
return typeof location === "string" ? location : createPath(location);
}
Example #5
Source File: StaticRouter.js From Lynx with MIT License | 5 votes |
createURL = function createURL(location) {
return typeof location === "string" ? location : createPath(location);
}
Example #6
Source File: client.js From OpenRichpedia with MIT License | 4 votes |
// Re-render the app when window.location changes
async function onLocationChange(location, action) {
// Remember the latest scroll position for the previous location
scrollPositionsHistory[currentLocation.key] = {
scrollX: window.pageXOffset,
scrollY: window.pageYOffset,
};
// Delete stored scroll position for next page if any
if (action === 'PUSH') {
delete scrollPositionsHistory[location.key];
}
currentLocation = location;
const isInitialRender = !action;
try {
context.pathname = location.pathname;
context.query = queryString.parse(location.search);
// Traverses the list of routes in the order they are defined until
// it finds the first route that matches provided URL path string
// and whose action method returns anything other than `undefined`.
const route = await router.resolve(context);
// Prevent multiple page renders during the routing process
if (currentLocation.key !== location.key) {
return;
}
if (route.redirect) {
history.replace(route.redirect);
return;
}
const renderReactApp = isInitialRender ? ReactDOM.hydrate : ReactDOM.render;
appInstance = renderReactApp(
<App context={context} insertCss={insertCss}>
{route.component}
</App>,
container,
() => {
if (isInitialRender) {
// Switch off the native scroll restoration behavior and handle it manually
// https://developers.google.com/web/updates/2015/09/history-api-scroll-restoration
if (window.history && 'scrollRestoration' in window.history) {
window.history.scrollRestoration = 'manual';
}
const elem = document.getElementById('css');
if (elem) elem.parentNode.removeChild(elem);
return;
}
document.title = route.title;
updateMeta('description', route.description);
// Update necessary tags in <head> at runtime here, ie:
// updateMeta('keywords', route.keywords);
// updateCustomMeta('og:url', route.canonicalUrl);
// updateCustomMeta('og:image', route.imageUrl);
// updateLink('canonical', route.canonicalUrl);
// etc.
let scrollX = 0;
let scrollY = 0;
const pos = scrollPositionsHistory[location.key];
if (pos) {
scrollX = pos.scrollX;
scrollY = pos.scrollY;
} else {
const targetHash = location.hash.substr(1);
if (targetHash) {
const target = document.getElementById(targetHash);
if (target) {
scrollY = window.pageYOffset + target.getBoundingClientRect().top;
}
}
}
// Restore the scroll position if it was saved into the state
// or scroll to the given #hash anchor
// or scroll to top of the page
window.scrollTo(scrollX, scrollY);
// Google Analytics tracking. Don't send 'pageview' event after
// the initial rendering, as it was already sent
if (window.ga) {
window.ga('send', 'pageview', createPath(location));
}
},
);
} catch (error) {
if (__DEV__) {
throw error;
}
console.error(error);
// Do a full page reload if error occurs during client-side navigation
if (!isInitialRender && currentLocation.key === location.key) {
console.error('RSK will reload your page after error');
window.location.reload();
}
}
}