Home Web Front-end JS Tutorial Detailed explanation of the use of front-end routing for vue's single-page application

Detailed explanation of the use of front-end routing for vue's single-page application

Apr 08, 2018 am 11:23 AM
use front end routing

This time I will bring you a detailed explanation of the use of front-end routing for vue single-page applications. What are the precautions for using front-end routing for vue single-page applications. The following is a practical case, let's take a look.

Written in front: Usually there are two ways to implement front-end routing in SPA:

  1. window.history

  2. location. hash

The following will introduce how to implement these two methods

1.history

1.Basic introduction to history

The window.history object contains the history of the browser. The window.history object does not need to use the window prefix when writing it. History is a mainstream method for implementing SPA front-end routing. It has several original methods:

  1. history.back() - the same as clicking the back button in the browser

  2. history.forward() - Same as clicking the button forward in the browser

  3. history.go(n) - Accepts an integer as argument, moves to The page specified by this integer, for example, go(1) is equivalent to forward(), go(-1) is equivalent to back(), go(0) is equivalent to refreshing the current page

  4. If The moved position exceeds the boundary of the access history. The above three methods do not report an error, but fail silently

In HTML5, history object proposes pushState() method and replaceState() method, these two methods can be used to add data to the history stack, just as if the url changes (in the past, only the url change history stack will change), so that you can well simulate browsing history and progress. After retreating, the current front-end routing is also implemented based on this principle.

2.history.pushState

pushState(stateObj, title, url) method writes data to the history stack, and its first parameter is to be written Data object (not larger than 640kB), the second parameter is the title of the page, and the third parameter is the url (relative path).

  1. stateObj: A state object related to the specified URL. When the popstate event is triggered, the object will be passed into the callback function. If this object is not needed, null can be filled in here.

  2. title: The title of the new page, but all browsers currently ignore this value, so null can be filled in here.

  3. url: The new URL must be in the same domain as the current page. Your browser's address bar will display this URL.

There are a few things worth noting about pushState:

The pushState method does not trigger a page refresh, but only causes the history object to change, and the address bar will react. The browser will refresh only when events such as forward and backward (back() and forward(), etc.) are triggered

The URL here is restricted by the same-origin policy to prevent malicious scripts from imitating other website URLs for deception user, so when the same-origin policy is violated, an error will be reported

3.history.replaceState

The difference between replaceState(stateObj, title, url) and pushState is that it It is not writing but replacing and modifying the current record in the browsing history. The rest is exactly the same as pushState

4.popstate event

Definition: Whenever the browsing history of the same document ( When the history object) changes, the popstate event will be triggered.

Note: Just calling the pushState method or replaceState method will not trigger this event. Only the user clicks the browser's back button and forward button, or uses JavaScript to call the back, forward, and go methods. It will be triggered only when. In addition, this event only targets the same document. If the browsing history is switched and different documents are loaded, this event will not be triggered.

Usage: When using, you can specify a callback function for the popstate event. The parameter of this callback function is an event event object, and its state attribute points to the state object provided by the pushState and replaceState methods for the current URL (that is, the first parameter of these two methods).

5.history implements spa front-end routing code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<a class="api a">a.html</a>

<a class="api b">b.html</a>

 // 注册路由

  document.querySelectorAll('.api').forEach(item => {

   item.addEventListener('click', e => {

    e.preventDefault();

    let link = item.textContent;

    if (!!(window.history && history.pushState)) {

     // 支持History API

     window.history.pushState({name: 'api'}, link, link);

    else {

     // 不支持,可使用一些Polyfill库来实现

    }

   }, false)

  });

  // 监听路由

  window.addEventListener('popstate', e => {

   console.log({

    location: location.href,

    state: e.state

   })

  }, false)

Copy after login

The e.state printed in the popstate listening function is the first one passed in history.pushState() Parameters, here is {name: 'api'}

二.Hash

1.Hash基本介绍

url 中可以带有一个 hash http://localhost:9000/#/a.html

window 对象中有一个事件是 onhashchange,以下几种情况都会触发这个事件:

  1. 直接更改浏览器地址,在最后面增加或改变#hash;

  2. 通过改变location.href或location.hash的值;

  3. 通过触发点击带锚点的链接;

  4. 浏览器前进后退可能导致hash的变化,前提是两个网页地址中的hash值不同。

2.Hash实现spa前端路由代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

  // 注册路由

  document.querySelectorAll('.api').forEach(item => {

   item.addEventListener('click', e => {

    e.preventDefault();

    let link = item.textContent;

    location.hash = link;

   }, false)

  });

  // 监听路由

  window.addEventListener('hashchange', e => {

   console.log({

    location: location.href,

    hash: location.hash

   })

  }, false)

Copy after login

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

vue.js实现操作class的方法

D3.js实现动态仪表盘案列

The above is the detailed content of Detailed explanation of the use of front-end routing for vue's single-page application. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1663
14
PHP Tutorial
1266
29
C# Tutorial
1238
24
What software is crystaldiskmark? -How to use crystaldiskmark? What software is crystaldiskmark? -How to use crystaldiskmark? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark is a small HDD benchmark tool for hard drives that quickly measures sequential and random read/write speeds. Next, let the editor introduce CrystalDiskMark to you and how to use crystaldiskmark~ 1. Introduction to CrystalDiskMark CrystalDiskMark is a widely used disk performance testing tool used to evaluate the read and write speed and performance of mechanical hard drives and solid-state drives (SSD). Random I/O performance. It is a free Windows application and provides a user-friendly interface and various test modes to evaluate different aspects of hard drive performance and is widely used in hardware reviews

How to download foobar2000? -How to use foobar2000 How to download foobar2000? -How to use foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 is a software that can listen to music resources at any time. It brings you all kinds of music with lossless sound quality. The enhanced version of the music player allows you to get a more comprehensive and comfortable music experience. Its design concept is to play the advanced audio on the computer The device is transplanted to mobile phones to provide a more convenient and efficient music playback experience. The interface design is simple, clear and easy to use. It adopts a minimalist design style without too many decorations and cumbersome operations to get started quickly. It also supports a variety of skins and Theme, personalize settings according to your own preferences, and create an exclusive music player that supports the playback of multiple audio formats. It also supports the audio gain function to adjust the volume according to your own hearing conditions to avoid hearing damage caused by excessive volume. Next, let me help you

BTCC tutorial: How to bind and use MetaMask wallet on BTCC exchange? BTCC tutorial: How to bind and use MetaMask wallet on BTCC exchange? Apr 26, 2024 am 09:40 AM

MetaMask (also called Little Fox Wallet in Chinese) is a free and well-received encryption wallet software. Currently, BTCC supports binding to the MetaMask wallet. After binding, you can use the MetaMask wallet to quickly log in, store value, buy coins, etc., and you can also get 20 USDT trial bonus for the first time binding. In the BTCCMetaMask wallet tutorial, we will introduce in detail how to register and use MetaMask, and how to bind and use the Little Fox wallet in BTCC. What is MetaMask wallet? With over 30 million users, MetaMask Little Fox Wallet is one of the most popular cryptocurrency wallets today. It is free to use and can be installed on the network as an extension

How to use Baidu Netdisk app How to use Baidu Netdisk app Mar 27, 2024 pm 06:46 PM

Cloud storage has become an indispensable part of our daily life and work nowadays. As one of the leading cloud storage services in China, Baidu Netdisk has won the favor of a large number of users with its powerful storage functions, efficient transmission speed and convenient operation experience. And whether you want to back up important files, share information, watch videos online, or listen to music, Baidu Cloud Disk can meet your needs. However, many users may not understand the specific use method of Baidu Netdisk app, so this tutorial will introduce in detail how to use Baidu Netdisk app. Users who are still confused can follow this article to learn more. ! How to use Baidu Cloud Network Disk: 1. Installation First, when downloading and installing Baidu Cloud software, please select the custom installation option.

How to use NetEase Mailbox Master How to use NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox, as an email address widely used by Chinese netizens, has always won the trust of users with its stable and efficient services. NetEase Mailbox Master is an email software specially created for mobile phone users. It greatly simplifies the process of sending and receiving emails and makes our email processing more convenient. So how to use NetEase Mailbox Master, and what specific functions it has. Below, the editor of this site will give you a detailed introduction, hoping to help you! First, you can search and download the NetEase Mailbox Master app in the mobile app store. Search for "NetEase Mailbox Master" in App Store or Baidu Mobile Assistant, and then follow the prompts to install it. After the download and installation is completed, we open the NetEase email account and log in. The login interface is as shown below

How to use Thunder to download magnet links How to use Thunder to download magnet links Feb 25, 2024 pm 12:51 PM

With the rapid development of network technology, our lives have also been greatly facilitated, one of which is the ability to download and share various resources through the network. In the process of downloading resources, magnet links have become a very common and convenient download method. So, how to use Thunder magnet links? Below, I will give you a detailed introduction. Xunlei is a very popular download tool that supports a variety of download methods, including magnet links. A magnet link can be understood as a download address through which we can obtain relevant information about resources.

Teach you how to use the new advanced features of iOS 17.4 'Stolen Device Protection' Teach you how to use the new advanced features of iOS 17.4 'Stolen Device Protection' Mar 10, 2024 pm 04:34 PM

Apple rolled out the iOS 17.4 update on Tuesday, bringing a slew of new features and fixes to iPhones. The update includes new emojis, and EU users will also be able to download them from other app stores. In addition, the update also strengthens the control of iPhone security and introduces more "Stolen Device Protection" setting options to provide users with more choices and protection. "iOS17.3 introduces the "Stolen Device Protection" function for the first time, adding extra security to users' sensitive information. When the user is away from home and other familiar places, this function requires the user to enter biometric information for the first time, and after one hour You must enter information again to access and change certain data, such as changing your Apple ID password or turning off stolen device protection.

How to use Xiaomi Auto app How to use Xiaomi Auto app Apr 01, 2024 pm 09:19 PM

Xiaomi car software provides remote car control functions, allowing users to remotely control the vehicle through mobile phones or computers, such as opening and closing the vehicle's doors and windows, starting the engine, controlling the vehicle's air conditioner and audio, etc. The following is the use and content of this software, let's learn about it together . Comprehensive list of Xiaomi Auto app functions and usage methods 1. The Xiaomi Auto app was launched on the Apple AppStore on March 25, and can now be downloaded from the app store on Android phones; Car purchase: Learn about the core highlights and technical parameters of Xiaomi Auto, and make an appointment for a test drive. Configure and order your Xiaomi car, and support online processing of car pickup to-do items. 3. Community: Understand Xiaomi Auto brand information, exchange car experience, and share wonderful car life; 4. Car control: The mobile phone is the remote control, remote control, real-time security, easy

See all articles