vue总结

Posted jcdxh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue总结相关的知识,希望对你有一定的参考价值。

已经使用vue有一段时间,并且写过两三个项目了,决定总结一下vue中常用到的东西,也算巩固一下,随着不断深入学习,也会不断的扩充这篇博客!

一.Vue

1.1 vue的常用指令和属性方法API:

  • v-if (v-if-else ,v-else) ,v-show(修改display的css属性让其显示或者隐藏), v-for( 是数组有index属性(item,index)in data ,是对象还有value,key属性(value,key,index)in data)

  • v-bind( 简写:(属性绑定)),v-on ( 简写 @ (事件绑定,也可直接修改vue内部变量))

  • v-model (语法糖,:bind="value"与@change="value = $event.target.value"的结合)

  • v-slot (有具名插槽和作用域插槽,具名插槽:让组件出现在想要出现的地方,作用域插槽,获取作用域中的数据(布尔值,number值,对象)来展示特定的样式或者组件)

  • data() { return {}} (存放页面数据的地方) , methods: {} 存放方法的地方

  • computed :{} 计算属性 (复杂的值计算,某个数据的和需要获取某个对象中的通过某种逻辑得到的值Vue.filters:用于简单的数据格式,在应用程序的多个位置都需要它 (时间戳转化成对应字符串)

  • Vue.nextTick :在下次DOM更新循环结束时执行回调(比如我们点击一个按钮,按钮变成一个input标签,并且获取input的焦点的时候,需要操作input这个dom元素,如果在按钮还没转换成input的时候就获取input的dom会报错)

1.2 Vue组件之间的通信

//在实际开发中,往往会在大组件中接收一定的数据,然后按需要,将某些数据传递给下面一个个的小组件,在小组件中,发生了某些事件,需要告诉父组件让其做出某种变化

父 => 子(传值) :
通过props向子组件传递数据
1.在子组件中 行为区域 通过props来声明需要接收父组件的数据 (可设置类型和默认值)
2.在父组件中使用子组件的时候通过 绑定自定义属性 (<cpn :message='message'><cpn>将数据传入到子组件

子 =>父 (传递事件消息):
通过自定义事件和$emit
1.在子组件对应的标签中,绑定对应事件,传入想要传递给父组件的参数 (@click='btnclick(item)'                                                   事件方法中使用emit发射 this.$emit('itemclick',item))
2.在父组件中使用子组件的时候,监听子组件发出的事件 (<cpn @itemclick='cpnclick'><cpn> )

父 =>子 (父组件访问子组件的属性):
1.$children (不推荐)
2.$refs 和 ref  (推荐, ref绑定组件且命名,this.$refs调用)

子 =>父 (子组件访问父组件的值):
1.$parent  (不推荐)
一般开发中都不会这样做,因为应该避免直接访问父组件,这样耦合度太高了

跨多层组件通信:
1.事件总线EventBus
2.VueX

1.3 生命周期和钩子函数

1.beforeCreat():实例在完全创建出来 之前 会执行它,data和methods中数据还没初始化

2*.created():data和methods已经完成初始化,vue开始编译模板,在内存中生成一个编译好的模板字符串,然后渲染成dom  ( 一般网络请求都在这里进行,因为data和methods完成初始化,可赋值)

3.beforeMount():模板在内存中已经编译好了,但是没有渲染到页面中,页面显示的还仅仅是模板字符串

4.*Mounted() :模板已经真实的挂载到了页面中,页面中DOM创建完成 (一般在这里进行dom元素的操作)

5.beforeUpdated():data中的数据已经被更新,但是页面中的data还没被替换

6.updated(): 执行它时,页面和data中的数据已经同步了

//还有几个其他的钩子函数
 activated函数:keep-alive组件激活时调用
 deactivated函数:keep-alive组件停用时调用
 beforeDestroy:vue(组件)对象销毁之前
 destroyed:vue组件销毁后   (一般用这几个函数测试,组件是否被缓存等操作)

二.Vue-Router

如何安装和配置不再这里概述,这里总结几个常用的方法

主要就是 创建路由组件 => 配置路由映射对应组件 => 使用路由 (

router-view 路由占位符,用于可以嵌套路由(多级组件展示)
注意:
如何让路径默认跳转到首页
{
    path:'/',
    redirect:'/home'
}
------------------------------------------------------------------------------------------------
router-link 用于动态路由 (多个用户使用同一个组件展示,路由需要依靠用户的不同展示不同的路由)
注意:
  {
    path:'user/:id',
    component:User
  }
  <div>
    <h2> {{ $route.params.id}} </h2>
  </div>
  <router-link to='/user/123'>用户<router-link>
------------------------------------------------------------------------------------------------
  导航守卫:
      
  导航:表示正在发改变,守卫:监听路由的进入和离开,并且在这其中进行对应的操作
      
  vue-router提供了beforeEach和afterEach的钩子函数,它们会在路由即将改变前和改变后触发
      
  用处案例:1.比如登陆前通过导航守卫验证token值后才能访问其他页面  2.比如跳转页面后需要修改页面小标题等等
 
  • 跳转路由:this.$router.push(‘ /...‘)
  • 获取当前路由信息:this.$route 可以获取name,path,query,parmas
  • 路由懒加载 使用import的形式
  • keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染, 细节用法查看文档

三.VueX

四.源码剖析

以上是关于vue总结的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段1——vue主模板

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段(vue主模板)

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置

VSCode自定义代码片段11——vue路由的配置