watch - ルーティングアドレスの変更を監視します

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <script src="./lib/vue-2.4.0.js"></script>
  <!-- 1. 导入包 -->
  <script src="./lib/vue-router-3.0.1.js"></script>
</head>

<body>
  <div id="app">
    <router-link to="/login">登录</router-link>
    <router-link to="/register">注册</router-link>

    <!-- 容器 -->
    <router-view></router-view>

  </div>

  <script>
    // 2. 创建子组件
    var login = {
    
    
      template: '<h3>这是登录子组件,这个组件是 奔波霸 开发的。</h3>'
    }

    var register = {
    
    
      template: '<h3>这是注册子组件,这个组件是 霸波奔 开发的。</h3>'
    }

    // 3. 创建一个路由对象
    var router = new VueRouter({
    
    
      routes: [ // 路由规则数组
        {
    
     path: '/', redirect: '/login' },
        {
    
     path: '/login', component: login },
        {
    
     path: '/register', component: register }
      ],
      linkActiveClass: 'myactive' // 和激活相关的类
    })

    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
    
    
      el: '#app',
      data: {
    
    },
      methods: {
    
    },
      // router: router
      router,
      watch: {
    
    
        //  this.$route.path
        '$route.path': function (newVal, oldVal) {
    
    
          // console.log(newVal + ' --- ' + oldVal)
          if (newVal === '/login') {
    
    
            console.log('欢迎进入登录页面')
          } else if (newVal === '/register') {
    
    
            console.log('欢迎进入注册页面')
          }
        }
      }
    });
  </script>
</body>

</html>

watch、~computed、メソッドの比較

1. 計算された属性の結果はキャッシュされ、依存する応答属性が変更されない限り再計算されません。主に属性として使用されます。

2. 「メソッド」メソッドは特定の操作を表し、主にビジネス ロジックを記述します。

3.'watch はオブジェクト、key は監視対象の式、value は対応するコールバック関数です。これは主に、特定のビジネス ロジック操作を実行するために特定のデータの変更を監視するために使用され、計算とメソッドの組み合わせとみなすことができます。

おすすめ

転載: blog.csdn.net/qq_41309350/article/details/122601809