vue记录

简介

是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue> 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

基础特性

  • 双大括号语法用于文本插值
  • 模板内部不要访问全局变量
  • vm.$watch 是一个实例方法有两个参数,能监听数据的变化返回改变后的值和改变前的值
  • computed 处理模板内的复杂逻辑形成方法
  • 方法写入模块内能缓存,不依赖响应数据

wach侦听和computed计算

  • 因频繁的数据变动使用wach得不偿失,应使用计算

  • wach在执行异步操作时才得以使用
    计算的setter

  • 在触发数据变化时setter会被使用

组件

  • 组件是可复用的 Vue 实例,且带有一个名字
  • 它们与 new Vue 接收相同的选项,例外是像 el 这样根实例特有的选项。
  • 可以将组件进行任意次数的复用,因为你每用一次组件,就会有一个它的新实例被创建。
  • 自定义组件使用class不会覆盖原有的class
  • 可以像在任何普通元素上一样使用 v-for ,但是key是必须的
  • 组件有自己独立的作用域,为了把数据传递到组件里,我们要使用 prop:
  • 组件默认可拥有任意数量的prop也能是数组犹如data一样的效果
  • 事件的同样可以绑定,传入一个事件源对象需要方法 $emit 传递
  • 父级监听自定义组件需要用$event来访问
  • 组件使用v-model需要使用到 $emit 接收和 $event 来取值
  • 给组件传递内容使用元素在需要的地方加入插槽
  • 动态切换要特殊的 is attribute 来实现正常工作需 .prop修饰器
  • dom模板操作时被忽略需要特殊的 is 来变通

指令

指令后方可以添加参数和修饰符
方括号包裹表示动态参数属性,需要遵守书写规范
修饰符是指令以特殊方式绑定
v-bind 和 v-on 这两个最常用的指令,提供了简写

  • v-once 指令,执行一次插值

  • v-html 指令,输出html(避免使用输出)

  • v-bind 指令:解析表达式为true生效

  • v-if 指令,根据表达的真假值决定行为

  • v-if指令,达式返回 truthy 值的时候被渲染,需显示多个元素需要在不可见的包裹

  • v-else 元素必须紧跟在带 v-if 或者 v-else-if块 的元素的后面,否则它将不会被识别。

  • vue通常会复用已有元素,添加一个具有唯一属性的值给 key 就会动态生成

  • v-show 指令,根据条件展示元素,带有 v-show 的元素始终会被渲染并保留在 DOM 中

  • v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销,非常频繁地切换用show,很少改变用if

  • v-if 与 v-for 不建议一起使用,v-for 具有更高的优先级,if会不断循环,for需添加限制时非常有效

  • v-for 指令,基于一个数组,可获取值和下标,还有父级属性

  • 为对象可获取值和键名,还有下标,取得的值为动态渲染时,需要添加id,:key

  • 数组内部的值正常无法动态监听,需使用变异方法包裹触发视图更新

  • 变异方法push(),pop(),shift(),unshift(),splice(),sort(),reverse()

  • 替换数组,使用非变异方法改变数组是相当高效的行为

  • filter()、concat() 和 slice() 等

  • 下标设置值和修改数组长度不是响应式的

  • 可以用Vue.set或实例vm.$set实现响应式或splice截取添加

  • 修改长度使用splice截取掉获得

  • 动态添加删除对象内容也不是动态的,可以使用vue.set或其实例,多个对象使用时assign先手动添加新的空对象

class和style

  • v-bind 指令:解析表达式或对象属性为true生效
  • v-bind用于动态切换class能是对象和数组
  • 对象为一个返回函数返回判断处理的结果
  • 数组则可以使用三目判断操作,或和对象混和使用
  • v-bind:style也能是对象和数组
  • 对象内可以是多个属性,在模板内更清晰,值能包含多个前缀为值
  • 数组就是多个样式应用,

过滤器

  • 排序则使用computed计算属性,返回使用filter形成的新数组
  • for循环时可设置为处理函数动态执行返回新数组
  • for接受源对象为整数时会重复对应次数
  • 在 上使用 v-for循环渲染

事件处理

  • 监听事件:v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码。

  • 一般接受的参数是事件处理的函数名称,或函数体

  • 函数体参数内除了数据还有$event取事件

  • 事件修饰符,点开头的指令后缀

  • .stop:阻止单击事件继续传播

  • .prevent:提交事件不再重载页面,可以串联,只有修饰符

  • .capture:事件捕获在内部处理

  • .self:自身event为触发时执行函数

  • .once:只会触发一次,能被用到自定义的组件事件上

  • .passive:得到事件触发会立即触发行动,提升移动端性能

  • 按键修饰符

  • Vue 允许为 v-on 在监听键盘事件时添加按键修饰符

  • 可以通过全局 config.keyCodes 对象自定义按键修饰符别名

  • .exact 修饰符允许控制由精确的系统修饰符组合触发的事件

  • 鼠标按钮修饰符会限制处理函数仅响应特定的鼠标按钮。

  • 表单输入绑定

  • v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:

  • text 和 textarea 元素使用 value 属性和 input 事件;

  • checkbox 和 radio 使用 checked 属性和 change 事件;

  • select 字段将 value 作为 prop 并将 change 作为事件。

  • 用 v-for 渲染的动态选项:使用v-bind实现动态绑定

  • 内部的rure-vale和false-value不会影响表单控件的提交

  • 修饰符.lazy 转变为使用 change 事件进行同步

  • .number 自动将用户的输入值转为数值类型

  • .trim 自动过滤用户输入的首尾空白字符

过度和动画

  • Vue 提供了 transition 的封装组件,自动嗅探目标,在恰当的时机添加/删除 CSS 类名
  • v-enter:定义进入过渡的开始状态
  • v-enter-to: 2.1.8版及以上 定义进入过渡的结束状态
  • v-enter-active:定义进入过渡生效时的状态
  • v-leave-active:定义离开过渡生效时的状态
  • v-leave: 定义离开过渡的开始状态
  • v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态

深入组件

  • 组件名大驼峰或杠链接
  • 全局和局部组件,全局是在new vue前注册的,在打包时增加无谓的增加
  • 子组件之间不通信,添加到 Components 目录进行模块加载即可
  • 组件的自动化注册也是依靠es6模块引入
  • prop的属性命名驼峰式,使用就是杠连接
  • prop类型可以是数组或对象,可以接受静态值和动态值
  • 给prop传全部的对象属性,使用不带参数的 v-bind 解析
  • 单向数据流,prop父子之间是向下单向绑定的,动态更新的子prop内容
  • 作为本地prop数据使用或转换可以用data和computed处理返回
  • prop验证数据类型,根据定义的验证方法返回警告
  • 类型检查,type可以是所有类型原生构造函数的一个
  • 非prop的传入没有定义的属性会添加到对应根元素上
  • 本身和父级的属性值在冲突时会合并得到最终的值
  • 可以选择禁用Attribute(属性)不继承根的属性
  • 实例的 $attrs 属性使用,包含给组件的attrbute和值
  • 自定义事件,监听时间需要完全匹配,则使用杠连接
  • v-model默认会利用value和prop名为input事件,model可以自己设置prop和enent值,以及输入类型的控件设置
  • 组件上监听原生事件使用 v-on 的 .native 修饰符
  • 监听被重构的input会静默失败,需要 $listentrs 对象返回监听器
  • .sync 修饰符,update:myPropName可以对prop值进行监听更新
  • 插槽,在模板内进行设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值