返回

面试 Vue,这几个知识点要掌握

前端

Vue watch 的高级用法

handle 方法

handle 方法可以让你在 watch 监听的属性发生变化时,执行自定义的函数。这个函数会收到两个参数:

  • oldVal:属性原来的值
  • newVal:属性新的值

例如,以下代码使用 handle 方法来监听 message 属性的变化,并在属性发生变化时,将新值打印到控制台:

watch: {
  message: {
    handle(newVal, oldVal) {
      console.log(`Message changed from "${oldVal}" to "${newVal}"`)
    }
  }
}

deep 和 immediate

deep 选项可以让你监听对象的深度变化。这意味着,如果对象中的某个属性发生了变化,watch 监听器也会被触发。

immediate 选项可以让你在组件创建时立即执行一次 watch 监听器。这对于在组件创建时就需要获取数据的情况很有用。

例如,以下代码使用 deep 和 immediate 选项来监听 message 对象的变化,并在组件创建时立即执行一次 watch 监听器:

watch: {
  message: {
    deep: true,
    immediate: true,
    handle(newVal, oldVal) {
      console.log(`Message changed from "${oldVal}" to "${newVal}"`)
    }
  }
}

Vue2.0 v-for 中 :key 的作用

在 Vue2.0 中,使用 v-for 遍历数组时,必须为每个元素指定一个唯一的 key。key 的作用是帮助 Vue 跟踪数组元素的变化,以便在数组发生变化时,Vue 能够正确地更新 DOM。

key 可以是任何唯一的值,但通常使用元素的 id 或索引。例如,以下代码使用 v-for 遍历一个数组,并为每个元素指定了一个唯一的 key:

<ul>
  <li v-for="item in items" :key="item.id">{{ item.name }}</li>
</ul>

Vue 组件的 props、methods 和 data 的关系

props 是组件的属性,用于接收父组件传递的数据。methods 是组件的方法,用于处理组件内部的逻辑。data 是组件的数据,用于存储组件内部的状态。

props 是只读的,不能在组件内部修改。methods 和 data 都是可变的,可以在组件内部修改。

例如,以下代码定义了一个 Vue 组件,该组件有一个名为 message 的 props,一个名为 handleClick 的 methods,以及一个名为 count 的 data:

export default {
  props: ['message'],
  methods: {
    handleClick() {
      this.count++
    }
  },
  data() {
    return {
      count: 0
    }
  }
}

Vue 路由的原理和使用

Vue 路由是一个用于管理 Vue.js 单页面应用程序 (SPA) 路由的库。它可以让你在不同的页面之间导航,而无需重新加载整个页面。

Vue 路由的工作原理是使用 HTML5 的 history API 来管理浏览器的历史记录。当用户在不同的页面之间导航时,Vue 路由会将当前页面的状态保存到浏览器的历史记录中,并更新浏览器的 URL。当用户返回到之前的页面时,Vue 路由会从浏览器的历史记录中恢复当前页面的状态。

要使用 Vue 路由,你首先需要安装它:

npm install vue-router

然后,你可以在 Vue.js 的实例中配置 Vue 路由:

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const router = new VueRouter({
  routes: [
    {
      path: '/',
      component: Home
    },
    {
      path: '/about',
      component: About
    }
  ]
})

new Vue({
  router
}).$mount('#app')

Vuex 的基本概念和使用方法

Vuex 是一个用于管理 Vue.js 应用