相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!
?点赞?收藏?不迷路!?
display
属性来控制元素的显示和隐藏,通过切换 display
的值来实现显示或隐藏,而不是添加或移除元素。v-model
是用于实现表单元素和组件之间的双向数据绑定。
在表单元素上使用 v-model
,实际上是一个语法糖,它等价于同时绑定一个 value
属性和一个 input
事件。
对于普通元素, v-model 的实现类似于:
<input v-bind:value="myValue" v-on:input="myValue = $event.target.value">
v-model
可以被用在自定义组件上。当在自定义组件上使用 v-model
时,实际上是使用了一个 value
属性和一个 input
事件。可以将 value
作为组件的 props 传入,然后在内部触发 input
事件来更新 value
的值。
codeVue.component('custom-input', {
props: ['value'],
template: `
<input
:value="value"
@input="$emit('input', $event.target.value)"
>
`
})
然后可以使用该自定义组件并使用 v-model
进行双向绑定:
<custom-input v-model="message"></custom-input>
在Vue中,组件中的data选项需要返回一个对象,但为何要将data定义为一个函数呢? 这是因为组件是可以复用的,如果将data直接定义为一个对象,在多个组件实例之间会共享同一个data对象,导致状态共享和数据混乱。而将data定义为函数,每个组件实例可以拥有自己的数据副本,避免了数据的共享。 函数形式的data选项会在组件被实例化时调用,每次返回一个新的data对象,确保每个组件实例都有自己的独立的数据。
keep-alive
是 Vue 提供的一个抽象组件,用于缓存不活动的组件实例,以避免重复渲染。include
和 exclude
属性来决定哪些组件需要被缓存。<keep-alive>
包裹时,该组件的 beforeDestroy
钩子将不会被调用,从而保留了组件的状态。keep-alive
的实现基于 Vue 的抽象组件和组件生命周期的特性。$nextTick
是 Vue 提供的一个方法,用于在 DOM 更新之后执行回调函数。$nextTick
则会在下次 DOM 更新循环结束之后执行传入的回调函数。data
中的对象属性添加新属性时,新属性不会触发视图更新,因为 Vue 无法检测到属性的动态添加。Vue.set
或 this.$set
方法,它们可以用来在对象上添加新属性并确保触发视图更新。Vue.set(object, key, value);
// 或
this.$set(object, key, value);
- Vue 提供了一些封装的数组方法,如 push
、pop
、shift
、unshift
、splice
、sort
、reverse
。这些方法会被重写以触发视图更新。 - Vue 使用 Object.defineProperty
或 Proxy
来监听数组的变化,然后派发更新。对数组的这些操作会触发对应的 __ob__
(Observer 实例)上的依赖通知,进而引发视图更新。
Vue单页应用(Single Page Application,SPA)和多页应用(Multi-Page Application,MPA)是两种不同的前端应用架构。
1)Vue单页应用(SPA):
2)Vue多页应用(MPA):
总结:
SPA适合具有复杂交互和动态内容的应用,能够提供更好的用户体验,但对前端技术要求较高,需要处理好路由、状态管理和SEO等问题。而MPA则适用于传统的网站应用,每个页面都是独立的,适合对SEO友好的场景,但页面切换较慢,用户体验较差。选择SPA还是MPA应根据具体需求和项目特点进行选择。
开源项目地址:https://gitee.com/falle22222n-leaves/vue_-book-manage-system
已 300 + Star!
?点赞?收藏?不迷路!?