vue练习1

vue练习1

transition:为组件的载入和切换提供动画效果

transition-group:作为多个元素/组件的过渡效果

keep-alive:缓存

vue的特点

  1. 轻量级,Angular的学习成本高,使用起来比较复杂,而Vue相对简单、直接,所以Vue使用起来更加友好。
  2. 数据绑定,Vue是一个MVVM框架,数据双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化,这也算是Vue的精髓之处。尤其是在进行表单处理时,Vue的双向数据绑定非常方便。
  3. 指令,指令主要包括内置指令和自定义指令,以“v-”开头,作用于HTML元素。指令提供了一些特殊的特性, 将指令绑定在元素上时,指令会给绑定的元素添加一些特殊的行为。 例如,v-bind动态绑定指令、v-if 条件渲染指令、v- for列表渲染指令等。
  4. 插件,插件用于对Vue框架功能进行扩展,通过MyPlugin.install完成插件的编写,简单配置后就可以全局使用。常用的扩展插件有vue-router、Vuex 等。 Vue很多特性与Angular和React有着相同的地方,但是也有着性能方面的差别。 Vue使用基于依赖追踪的观察系统并且使用异步队列更新,所有的数据都是独立触发的,提高了数据处理能力。

React和Vue的中心思想是一切都是组件,组件之间可以实现嵌套。React 采用了特殊的JSX语法,Vue中也推崇编写以*.vue后缀命名的文件格式,对文件内容都有一些规定, 两者需要编译后使用。 值得一提的是,React依赖虚拟DOM,而Vue使用的是DOM模板。Vue 在模板中提供了指令、过滤器等,可以非常方便和快捷地操作DOM。推荐将Vue使用到具有复杂交互逻辑的前端应用中,以确保用户的体验效果。

单页面应用程序(SPA)

优点:
  1. 无刷新切换内容,提高用户体验。
  2. 符合前后端分离的开发思想,通过ajax异步请求数据接口获取数据,后台只需要负责数据,不用考虑渲染。前端使用vue等MVVM框架渲染数据非常合适。
  3. 减轻服务器压力,展示逻辑和数据渲染在前端完成,服务器任务更明确,压力减轻。
  4. 后端数据接口可复用,设计JSON格式数据可以在PC、移动端通用。
缺点:
  1. 不利于SEO(搜索引擎优化),应用数据是通过请求接口动态渲染,不利于SEO。
  2. 首页加载慢,SPA下大部分的资源需要在首页加载,造成首页白屏等问题。

使用watch handler属性有一个特点,就是当值第一次绑定时,watch不会执行监听函数,只有值发生改变时才会执行。如果需要在最初绑定值的时候也执行函数,则就需要用到immediate属性,添加 immediate: true属性。

new Vue({
  data: { a: 1, b: 2 }, 
  watch: {
    a: {
      handler: function(value){
        console.log(value) // 打印语句不执行
      }
    }
  }
})

v-model添加number修饰符,如果值不是数字,将不会有任何效果,直接返回输入值

全局路由守卫的钩子函数有:beforeEach(全局前置守卫)、beforeResolve(全局解析守卫)、afterEach(全局后置守卫) 名字中间没有“Route”, 组件级路由守卫的钩子函数才有“Route”

前端路由有两种模式:hash/histroy

hash:
  1. hash的优点是兼容性比较高,可以直接在项目布署上线时使用。
  2. hash的缺点是不美观影响url的美感,并且如果移动端分享严格限制,可能会报错。
history:
  1. history的优点是不会影响到url的美感,提高了可观赏性。
  2. history的缺点是需要与后端搭配,配合项目的部署上线。

由于 JavaScript 的限制,Vue 不能检测数组和对象的变化,因而对象属性的添加或删除不可以监听到。Vue 无法检测 property 的添加或移除。由于 Vue 会在初始化实例时对 property 执行 getter / setter 转化,所以 property 必须在data对象上存在才能让 Vue 将它转换为响应式的。

一般使用ajax时会使用异步处理,而mutation是写同步操作的,异步一般写在actions中。

  1. props传过来的,改数字,改字符串会报错,改数组,对象里面的值不会报错
  2. context是用在react中进行组件间的传值,Vue组件间传值可以通过props,$emit,Vuex,事件总线。
七个改变原数组且会让vue监听到的方法
  1. push()在末尾添加一个

  2. pop()在末尾删除一个

  3. shift()头部删除

  4. unshift()头部添加

  5. splice()删除,插入,替换

  6. sort()排序

  7. reverse() 颠倒原来顺序

  8. push()在该数组最尾添加新的元素,然后返回更新后的数组长度,方法将改变原始数组的长度;

  9. shift()删除该数组第一个元素,并且把该数组剩下的元素索引往前挪一位,然后返回删除的元素,方法将改变原始数组的长度;

  10. reverse()反转该数组中元素的顺序,方法将改变原始数组。

  11. concat()把两个以上的数字连接起来,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

  12. push(),shift(),reverse()改变原数组,会触发视图跟新;

  13. concat()不更改数组,会返回新数组,因此没有替换原数组,不触发视图更新,要用新数组替换原数组才能实现视图更新

父子组件生命周期的执行顺序(父早出晚归,子迟到早退)

  1. 父beforeCreate->父created->父beforeMount->子beforeCreate->子created->子beforeMount->子mounted->父mounted
  2. 子组件更新过程 父beforeUpdate->子beforeUpdate->子updated->父updated 父组件更新过程 父beforeUpdate->父updated 销毁过程 父beforeDestroy->子beforeDestroy->子destroyed->父destroyed

使用scoped,父组件的样式不会渗透到子组件,如果要渗透,可以在需要渗透的样式前面加>>>或::v-deep或/deep/

keep-alive:
<keep-alive>
	<loading></loading>
</keep-laive>
	include、exclude:匹配要进行缓存的组件
	max:max属性控制最多可以缓存多少组件实例。一旦这个数字达到了,在新实例被创建之前,已缓存组件中最久没有被访问的实例会被销毁掉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值