vue基础知识

1.v-model 原理(包含两部操作)

例如 input的动态改变输入值
方法1:v-model
方法二::value @input事件

2.vue组件化思想(树形结构)

将一个页面 拆分成多个组件,然后进行组合
组件的使用步骤:
(1)创建组件构造器(调用Vue.extend()方法)
(2)注册组件(调用Vue.component()方法)
(3)使用组件(在Vue实例的作用范围内使用)
组件:全局组件 局部组件

全局组件(整个页面的Vue实例中使用) Vue.component(‘my-omponent’, cpm) //全局组件
局部组件(当前定义的Vue实例中使用) components:{ cpm:cpm} //局部组件

3.父组件与子组件

// 子组件
const cpm1 = Vue.extend({
template: <div id="app"> <h3>子组件标题</h3> <p>我是组件内容</p> </div>
})
// 父组件
const cpm2 = Vue.extend({
template: <div id="app"> <h3>父组件标题</h3> <p>我是组件内容</p> <cpm1></cpm1> </div>,
components: {
cpm1: cpm1
}
})
const app = new Vue({
el: ‘#app’,
2. // 语法糖注册局部组件
components: {
cpm2: cpm2,
}
})

4.组件不能直接访问Vue实例中的data

5.组件自己的数据存放到哪里呢?

(1)组件对象也有一个data属性(也可以有methods属性)
(2)只是这个data属性必须是一个函数,这个函数返回一个对象,对象内部保存着数据

6.为什么组件的data必须是一个函数?

为了保证不同页面调用同一个组件时产生连锁反应,保证data返回的不是同一个对象

7.如何进行父子组件之间的通信?

(1)通过props由父组件向子组件传递数据
(2)通过$emit事件由子组件向父组件传递数据

8.Vue 响应式原理:

(1)将一个普通的javaScript对象作为data的选项传入vue实例;
(2)Vue将遍历此对象中的porperty,并使用Object.definePorperty 把porperty全部转为getter,setter;
(3)对于用户来说getter,setter是不可见的,但是在内部让vue能够追踪依赖,在porperty被访问和修改时通知变更;
(4)每一个组件实例都对应一个watcher实例,会在组件渲染的过程中,将接触过的数据porperty记为依赖,之后当依赖的setter触发时会通知watcher,使关联的组件重新渲染。

9.检测限制:

由于javaScript的限制,不能检测数组,对象的变化
(1)Vue无法检测porperty的移除、添加
原因:(由于 Vue 会在初始化实例时对 property 执行 getter/setter 转化,所以 property 必须在 data 对象上存在才能让 Vue 将它转换为响应式的)
(2)Vue 不能检测以下数组的变动:
原因:
当你利用索引直接设置一个数组项时,例如:vm.items[indexOfItem] = newValue
当你修改数组的长度时,例如:vm.items.length = newLength
var vm = new Vue({
data: {
items: [‘a’, ‘b’, ‘c’]
}
})
解决第一类问题:vm.$set(vm.items, indexOfItem, newValue)
解决第二类问题:vm.items.splice(newLength)

10.异步更新队列

(1)Vue在更新Dom时是异步执行的,只要侦测到数据变化,就会开启一个队列,缓存到同一事件循环中发生的所有数据变更;
(2)如果同一个 watcher 被多次触发,只会被推入到队列中一次;
有时为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值