Vue2复习
Vue2
插值、指令、动态属性、表达式、v-html
- 插值:{{ data }}
- 指令 & 动态属性:例子(:id="xxx")
- 表达式:可以用于赋值,写在{{}}里面
- v-html 替换绑定v-html的元素的所有子元素
计算属性
- 计算属性有缓存,只在与其关联的数据更新时重新计算
- 计算属性可以设置get和set函数。如果计算属性用于双向绑定,必须使用set来定义赋值操作
watch监听器
- 监听数据变化,可以拿到 newValue 和 oldValue
- 如果监听的是引用类型,需要添加属性deep: true, 并且提供handler函数
- watch监听引用类型拿到的newValue和oldValue都是同一个~
动态绑定类名和样式
<!-- class -->
<div class="class_1" :class="{ "className": isActive }">
<div class="class_1" :class="['className1', 'className2']">
<!-- style -->
<div class="class_1" :style="styleObj">
- 类:
- 对象语法:是否添加该类,取决于该类名所对应的值,即isActive是否为true
- 数组语法:是否添加该类,取决于数组内是否有该类名
 
- 样式: 在styleObj中定义样式属性
v-if 和 v-show 的区别
- v-if : 创建dom,销毁dom
- v-show: 操作css即可
v-for 列表循环
不推荐v-for和v-if一起使用,因为v-for的优先级比v-if高。所以会先去v-for渲染,然后再每一个去判断。
事件
- vue事件对象的原型的构造函数是原生事件构造函数
- vue根据我们在哪个元素上写了@click,就往哪个元素上绑定事件处理函数
- 如果是多个参数,可以用$event传入
父子组件通信方式 之 props/$emit
- 父组件中使用动态绑定属性传值
- 子组件使用props属性接收
- 子组件向父组件传值:this.$emit('add',...[arguments)
- 父组件监听add事件@add="method"
兄弟组件通信方式
- eventBus: 是一个Vue实例
- eventBus.$emit('event', ...[arguments);
- eventBus.$on('event', method);
- 组件销毁的时候可以解绑事件监听,使用eventBus.$off('event', method);
父子组件生命周期执行顺序
- created, mounted, beforeDestroyed
- Vue实例创建时,父组件先创建,子组件先渲染
- 在更新时,子组件先更新完,父组件才能更新完。但是是父组件先触发更新
什么是 nextTick
- vue渲染是异步的,当我们更新数据时,vue不会马上去做渲染,而是在下一个tick的时候去做渲染
- 如果需要准确获取vue更新后的结果的话,可以使用vue提供的api,vue.$nextTick(fn); 在fn中去获取需要的结果
slot 插槽
- 什么是插槽?预留一个位置,可以让我们插入任何内容
<!-- app.vue -->
<ul-slot>
    <li-slot>123</li-slot>
    <li-slot>123</li-slot>
    <li-slot>123</li-slot>
</ul-slot>
<!-- ulSlot -->
<ul id='ul-slot'>
    <slot></slot>
</ul>
<!-- li-slot -->
<li id="li-slot">
    <slot></slot>
</li>
- 子组件中slot标签的内容可以作为默认内容,如果没有内容传进插槽的话,就会显示默认内容
作用域插槽
<!-- parent -->
<son-slot>
    <template v-slot:default="slotProps">
        {{ slotProps.user.age }}
    </template>
</son-slot>
<!-- son -->
<!-- 注:user是子组件中的数据 -->
<slot :user=user>{{ user.name }}</slot>
具名插槽
<!-- App -->
<app>
    <layout>
        <template v-slot:header>
            <h1>header</h1>
        </template>
        <p>main content</p>
        <p>main content</p>
        <template v-slot:footer>
            <h1>footer</h1>
        </template>
    </layout>
</app>
<!-- layout -->
<div>
    <header>
        <slot name="header"></slot>
    </header>
    <main>
        <slot></slot>
    </main>
    <footer>
        <slot name="footer"></slot>
    </footer>
</div>
个人理解:slot有点像是说a组件指定了b组件里面的一些内容,前提是b组件需要提供一些接口,这个接口就是slot标签
动态组件
<component type="xxx"></component>
<!-- 指定xxx可以动态决定当前是使用哪一个组件进行渲染 -->
异步组件
当前组件如果不需要使用的话,但是一并加载进来会很影响性能,所以这时候需要异步组件。
// 语法:
components: {
    test: () => import('./components/test')
}
keep-alive
把想要保存的组件用keep-alive标签包裹起来
<keep-alive>
    <A></A>
    <B></B>
    <C></C>
</keep-alive>
<!-- 这样组件ABC就不会销毁了,会缓存其dom内容 -->
mixin
// mixin.js
// 抽离公共部分的逻辑
export default {
    data() {
        return {
            commonData: 123,
            commonData2: 234
        }
    },
    methods: {
        commonMethod1() {
        },
        commonMethod2() {
        }
    }
}
// vue
// 然后在vue中的mixin配置项配置一下
import mixin from './mixin';
export default {
    mixins: [mixin]
}
Vue2复习的更多相关文章
- 【Vue学习笔记1】基于Vue2.2.6版本
		记录一下自己关于Vue学习的过程,便于以后归纳整理以及复习. 1.下载引用vue.js 下载: npm install vue ,然后引用. 或直接线上引用: <script src=" ... 
- 【干货满满】1.5w字初中级前端面试复习总结
		前言 金九银十,又是一波跑路.趁着有空把前端基础和面试相关的知识点都系统的学习一遍,参考一些权威的书籍和优秀的文章,最后加上自己的一些理解,总结出来这篇文章.适合复习和准备面试的同学,其中的知识点包括 ... 
- vue3响应式原理以及ref和reactive区别还有vue2/3生命周期的对比,第二天
		前言: 前天我们学了 ref 和 reactive ,提到了响应式数据和 Proxy ,那我们今天就来了解一下,vue3 的响应式 在了解之前,先复习一下之前 vue2 的响应式原理 vue2 的响应 ... 
- iOS总结_UI层自我复习总结
		UI层复习笔记 在main文件中,UIApplicationMain函数一共做了三件事 根据第三个参数创建了一个应用程序对象 默认写nil,即创建的是UIApplication类型的对象,此对象看成是 ... 
- vue2.0实践的一些细节
		最近用vue2.0做了个活动.做完了回头发现,好像并没有太多的技术难点,而自己好像又做了比较久...只能说效率有待提升啊...简单总结了一些比较细节的点. 1.对于一些已知肯定会有数据的模块,先用一个 ... 
- 用FSM一键制作逐帧动画雪碧图 Vue2 + webpack
		因为工作需要要将五六十张逐帧图拼成雪碧图,网上想找到一件制作工具半天没有找到,就自己用canvas写了一个. 写成之后就再没有什么机会使用了,因此希望有人使用的时候如果遇到bug了能及时反馈给我. 最 ... 
- vue2.0构建淘票票webapp
		项目描述 之前一直用vue1.x写项目,最近为了过渡到vue2.0,特易用vue2.0栈仿写了淘票票页面,而且加入了express作为后台服务. 前端技术栈:vue2.0 + vue-router + ... 
- vuex复习方案
		这次复习vuex,发现官方vuex2.0的文档写得太简略了,有些看不懂了.然后看了看1.0的文档,感觉很不错.那以后需要复习的话,还是先看1.0的文档吧. 
- Vuex2.0+Vue2.0构建备忘录应用实践
		一.介绍Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,适合于构建中大型单页应用. ... 
- 一步步构造自己的vue2.0+webpack环境
		前面vue2.0和webpack都已经有接触了些(vue.js入门,webpack入门之简单例子跑起来),现在开始学习如何构造自己的vue2.0+webpack环境. 1.首先新建一个目录vue-wk ... 
随机推荐
- 阿里云数据库开源重磅发布:PolarDB HTAP的功能特性和关键技术
			简介:在3月2日的阿里云开源 PolarDB 企业级架构发布会上,阿里云 PolarDB 内核技术专家严华带来了主题为<PolarDB HTAP详解>的精彩演讲.在PolarDB存储计算分 ... 
- Dubbo 跨语言调用神兽:dubbo-go-pixiu
			简介: Pixiu 是基于 Dubbogo 的云原生.高性能.可扩展的微服务 API 网关.作为一款网关产品,Pixiu 帮助用户轻松创建.发布.维护.监控和保护任意规模的 API ,接受和处理成千上 ... 
- IIncrementalGenerator 解析 ValueTuple 的定义
			本文将告诉大家如何在分析器里面解析代码里面对于 ValueTuple 的定义,包括如何获取 ValueTuple 里面的 Item 的类型和命名 开始之前先创建一个用来被分析的项目,在这个项目里面定义 ... 
- 2018-2-13-win10-uwp-从StorageFile获取文件大小
			title author date CreateTime categories win10 uwp 从StorageFile获取文件大小 lindexi 2018-2-13 17:23:3 +0800 ... 
- Taurus.MVC 微服务框架 入门开发教程:项目集成:7、微服务间的调用方式(调整):引用程序集及代码下载(新增)
			前言: 今天补充一下 Taurus.MVC 微服务教程,介绍一下微服务中针对RPC方面调整或新增的功能. 之前系列文章目录: Taurus.MVC 微服务框架 入门开发教程:项目集成:1.服务端:注册 ... 
- kubenetes1.26中安装kubesphere3.4版本
			一.安装前环境准备 # kubesphere官网:https://kubesphere.io/zh/docs/v3.4/introduction/what-is-kubesphere/ # 1.kub ... 
- Canvas简历编辑器-我的剪贴板里究竟有什么数据
			Canvas图形编辑器-我的剪贴板里究竟有什么数据 在这里我们先来聊聊我们究竟应该如何操作剪贴板,也就是我们在浏览器的复制粘贴事件,并且在此基础上聊聊我们在Canvas图形编辑器中应该如何控制焦点以及 ... 
- 02 python爬虫-bs4
			目录 步骤 代码 结果 new.csv 图片 步骤 爬取主页面中的文章详情的url和图片地址 下载图片 并请求加文章详情中的页面内容 爬取文章详情中的标题.作者.发布时间 代码 import requ ... 
- 批量删除WordPress文章和页面的数据库命令和从后台直接删除
			批量删除wordpress的方法有两种:1.从wp后台可以调整展示:最多999条 2.选择"Bulk"--"Apply" 通过批量删除wordpress文章和页 ... 
- 处理flex布局
			点击查看代码 <view class="recommend-view"> <view class="title-view"> 热门推荐 ... 
