使用vue一段时间,但对有些混乱的地方还不了解,在这里简单的进行一个记录,便于理解与归纳 。

1.生命周期

beforeCreate

vue实例的挂载元素$el和数据对象data或者props都为undefined,还未初始化。

created

可以访问到之前不能访问到的数据,但是这时候组件还没被挂载,所以是看不到的

beforeMount

vue实例的$el和data都初始化了,创建虚拟的dom节点
补充:如果页面存在子组件,会在父组件的beforeMount之后去挂载子组件,当子组件挂载完成的时候才会去执行父组件的mounted

mounted

将VDOM 渲染为真实 DOM 并且渲染数据,vue实例挂载完成.

beforeUpdate

data更新时触发

updated

data更新时触发

beforeDestory

实例销毁之前调用。在这一步,实例仍然完全可用,适合移除事件、定时器等等

destroyed

组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在

2.组件通信

父子组件通信

父组件通过props传递数据给子组件,子组件通过emit发送事件传递数据给父组件,从而实现父子组件通信。

父组件
<template><div><square :status="status" @emitColor="changeColor"></square></div>
</template>
export default {data(){return {status:1}},methods:{changeColor (val) {this.status = val} }}
复制代码
子组件
<template><div><div class="box"><div :class="status===1?'red':'blue'" @click="emitColor"></div><p>点击方块更换颜色</p></div></div>
</template>
export default {name: 'square',props: ['status'],methods:{emitColor () {this.$emit('emitColor', 2)},  }}
复制代码

3 computed和watch

computed

计算一个新的属性,不在data中定义,同时,它具有缓存性,只有当依赖发生改变时,才会计算新的值。

<template>
<div>计算总和是:{{sum}}</div>
<div>计算总和是:{{sum}}</div>
</template>
...
data() {return {x:10,y:20,}
},
computed:{sum: function() {console.log('计算属性')return this.x + this.y }
}
复制代码

在代码中,引用了2次{{sum}},但是打印结果只有2次而不是4次,说明在第二次使用{{sum}}时,使用的是之前的缓存值。

:cumputed与方法比较

<template>
<div>计算总和是:{{sum()}}</div>
<div>计算总和是:{{sum()}}</div>
</template>
...
data() {return {x:10,y:20,}
},
methods:{sum(){return  return this.x + this.y }
}
}
复制代码

在代码中,引用了2次{{sum()}},但是打印4次,说明在第二次使用{{sum()}}时,重新进行了运算,不利于性能的优化。

watch

监听的是已经存在并且已经挂载vm上的数据,同时,它监听到值的变化就会执行回调。

<template>
</template>
...
data() {return {name: 'lucy',info: {height: '178cm',weight: '70kg',age: 20}}
},
//几种watch的用法
watch:{name: function(newValue,oldValue) {...   },info:{handler(newValue,oldValue){...},immediate: true,//立即执行deep:true,//深度监听},'info.age':{handler(newValue,oldValue){...},immediate: true,//立即执行deep:true,//深度监听}
}
}
复制代码

v-show 和 v-if

v-show被控制的元素只是在display:none和block之前切换,DOM元素是存在的;
v-if被操控的元素在渲染与不渲染之间进行切换

vue基础知识(一)相关推荐

  1. vue基础知识之vue-resource/axios

    Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必 ...

  2. Vue基础知识总结(二):进阶篇

    Vue基础知识总结(二):进阶篇 1.0 MVVM模式 MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式. MVVM模式将页面,分层了 M .V.和VM , ...

  3. 前端学习——vue基础知识

    1. Vue初体验: 1.1 导入开发版本的Vue.js <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" ...

  4. vue基础知识(day06)

    今日学习目标 能够了解组件进阶知识 能够掌握自定义指令创建和使用 能够完成tabbar案例的开发 组件进阶 1.0 组件进阶 - 动态组件 目标: 多个组件使用同一个挂载点,并动态切换,这就是动态组件 ...

  5. Vue基础知识总结(一):基础篇

    1.Vue.js 1.1Vue.js介绍 1.1.1 Vue.js是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计 ...

  6. Vue基础知识+组件化开发+模块化开发总结

    三.内容: 一.MVVM View层 视图层,我们前端开发时候的DOM层 主要就是给用户展示各种信息 Model层 数据层:可能是我们固定的思数据,更多的是来自我们的服务器,在网路上请求下来的数据 V ...

  7. Vue基础知识和案例展示

    原文链接 1 Web 概述 Web 三要素:HTML,CSS,JavaScript. HTML 用于控制网页的结构,CSS 用于控制网页的外观,JavaScript 控制的是网页的行为. 1.1 HT ...

  8. 【Vue基础知识总结 6,我的支付宝3面+美团4面+拼多多四面

    js运行在浏览器中的内核中的js引擎内部 Node.js是脱离浏览器环境运行的JavaScript程序,基于V8 引擎(Chrome 的 JavaScript的引擎) 3.服务器端应用开发(了解) 创 ...

  9. 【Vue 基础知识】keep-alive是什么?怎么用?

    提示:前端查漏补缺,仅代表个人观点,不接受任何批评 文章目录 一.keep-alive是什么? 二.使用步骤 1. 基本使用 2. 允许组件有条件地缓存 3. 缓存组件实例数量限制 三.注意事项 提示 ...

最新文章

  1. 再次分享一个多选文件上传方案“.NET研究”
  2. TOYS-POJ2318
  3. okhttp_utils的使用以及与服务端springboot交互中遇到的问题
  4. Apache Kafka 2.7.0 稳定版发布
  5. Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...
  6. 架构设计文档规范文档
  7. linux异常 - 弹出界面 eth0:设备eth0似乎不存在
  8. 使用vue-cli来搭建vue项目
  9. 文件服务器 共享 端口,共享文件服务端口设置
  10. git管理工具commit后提交记录消失不见
  11. Win7 旗舰版改为专业版(不用重装)
  12. linux 一键网克,MaxDos8下载一键Ghost|迈思工作室MaxDos工具箱下载 v8.0 官方版_最火软件站...
  13. pyecharts、plotly图表插入PPT中
  14. 手把手教你用Python网络爬虫实现起点小说下载
  15. 民宿平台airbnb是如何动态定价的
  16. 考拉解析公众号Android手机如何保存视频到相册
  17. 连续支付(周期扣款)功能开发及注意事项
  18. 图像分割与提取:交互式前景提取(附OpenCV代码实现)
  19. ubuntu保存退出
  20. 程序人生:企业网站解决方案

热门文章

  1. pysvn安装及常用方法
  2. 做网站用UTF-8还是GB2312?
  3. 春运男子持刀强行劫走17张卧铺票 ....
  4. Oracle学习(十三)优化专题 【持续更新】
  5. LiteDB源码解析系列(3)索引原理详解
  6. DeeplabV3+ 在自己环境下跑出现的错误
  7. Struts2.0第三章(文件上传、ajax开发、json、Fastjson、Jackson、注解开发)
  8. 全国省市编码_地区编码
  9. 【04】AngularJS 表达式
  10. 视觉基础与开发思路-第九节形态学操作