vue基础知识(一)
使用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基础知识(一)相关推荐
- vue基础知识之vue-resource/axios
Vue基础知识之vue-resource和axios(三) vue-resource Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必 ...
- Vue基础知识总结(二):进阶篇
Vue基础知识总结(二):进阶篇 1.0 MVVM模式 MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式. MVVM模式将页面,分层了 M .V.和VM , ...
- 前端学习——vue基础知识
1. Vue初体验: 1.1 导入开发版本的Vue.js <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js" ...
- vue基础知识(day06)
今日学习目标 能够了解组件进阶知识 能够掌握自定义指令创建和使用 能够完成tabbar案例的开发 组件进阶 1.0 组件进阶 - 动态组件 目标: 多个组件使用同一个挂载点,并动态切换,这就是动态组件 ...
- Vue基础知识总结(一):基础篇
1.Vue.js 1.1Vue.js介绍 1.1.1 Vue.js是什么? Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计 ...
- Vue基础知识+组件化开发+模块化开发总结
三.内容: 一.MVVM View层 视图层,我们前端开发时候的DOM层 主要就是给用户展示各种信息 Model层 数据层:可能是我们固定的思数据,更多的是来自我们的服务器,在网路上请求下来的数据 V ...
- Vue基础知识和案例展示
原文链接 1 Web 概述 Web 三要素:HTML,CSS,JavaScript. HTML 用于控制网页的结构,CSS 用于控制网页的外观,JavaScript 控制的是网页的行为. 1.1 HT ...
- 【Vue基础知识总结 6,我的支付宝3面+美团4面+拼多多四面
js运行在浏览器中的内核中的js引擎内部 Node.js是脱离浏览器环境运行的JavaScript程序,基于V8 引擎(Chrome 的 JavaScript的引擎) 3.服务器端应用开发(了解) 创 ...
- 【Vue 基础知识】keep-alive是什么?怎么用?
提示:前端查漏补缺,仅代表个人观点,不接受任何批评 文章目录 一.keep-alive是什么? 二.使用步骤 1. 基本使用 2. 允许组件有条件地缓存 3. 缓存组件实例数量限制 三.注意事项 提示 ...
最新文章
- 再次分享一个多选文件上传方案“.NET研究”
- TOYS-POJ2318
- okhttp_utils的使用以及与服务端springboot交互中遇到的问题
- Apache Kafka 2.7.0 稳定版发布
- Python爬虫批量下载糗事百科段子,怀念的天王盖地虎,小鸡炖蘑菇...
- 架构设计文档规范文档
- linux异常 - 弹出界面 eth0:设备eth0似乎不存在
- 使用vue-cli来搭建vue项目
- 文件服务器 共享 端口,共享文件服务端口设置
- git管理工具commit后提交记录消失不见
- Win7 旗舰版改为专业版(不用重装)
- linux 一键网克,MaxDos8下载一键Ghost|迈思工作室MaxDos工具箱下载 v8.0 官方版_最火软件站...
- pyecharts、plotly图表插入PPT中
- 手把手教你用Python网络爬虫实现起点小说下载
- 民宿平台airbnb是如何动态定价的
- 考拉解析公众号Android手机如何保存视频到相册
- 连续支付(周期扣款)功能开发及注意事项
- 图像分割与提取:交互式前景提取(附OpenCV代码实现)
- ubuntu保存退出
- 程序人生:企业网站解决方案