vue从入门到精通day02

逻辑棱镜
• 阅读 394

day02

1、列表的过滤和排序 设计数据

​ 逻辑并不难,关键就看能不能想到用计算属性
​ 一个数据根据另外的数据变化而产生,八九不离十要使用计算属

2、vue如何去监视数据变化而更新页面(点击按钮修改第一项)

​ 1、修改数组当中对象的属性,发现页面可以改变
​ 2、调用数组的方法直接修改数组当中的整个对象,发现页面也可以改变
​ 3、通过数组的下标直接修改数组当中的整个对象,发现页面改变不了
​ 原因:
​ 修改数组当中对象的属性,都是可以修改的,因为对象的所有属性都添加了get和set方法(响应式数据),data当中所有的对象

    通过数组的方法去修改整个对象也是可以修改的,因为vue当中重写了数组的部分原生方法,额外添加了展示到页面的功能

    通过下标直接修改数组整个对象,不可以展示到页面,但是数据确实改了,因为数组的数据整体并没有添加get和set方法


对象数据和数组数据响应式的区别


3、强制绑定样式class和style

​ class动态绑定:
​ 1、类名不确定 字符串形式
​ 2、类名确定,但是不知道哪个生效 对象形式
​ 3、类名有几个都生效 数组形式
​ style动态绑定
​ 1、必须把原来的东西写在对象当中,样式名不变,样式值是动态的
​ 2、样式名如果不合法,要变为小驼峰写法

4、条件渲染

​ v-if v-else 隐藏的时候直接删除元素节点 文档流当中不存在(内存无)
​ v-show 隐藏的时候通过css display: none去隐藏 文档流当中还存在(内存有)
​ 哪个好? 要看怎么用:假设我们需要频繁的切换,那么v-show效率比较高但是占内存
​ 假设我们切换不频繁,那么v-if v-else就比较好,不占内存

5、事件绑定方法

​ v-on
​ @
​ 参数:
​ 1、不传参不需要加(),默认传递事件对象参数$event
​ 2、传递参数需要加(),但是默认的事件对象参数会被传递的参数覆盖
​ 3、如果既需要传递参数也需要使用事件对象,那么需要传递两个参数:1、自己的参数 2、$event

事件对象:
阻止事件冒泡 事件修饰符.stop
取消默认行为 事件修饰符.prevent


6、自动收集表单数据v-model的应用

​ 输入框数据 输入的数据会自动赋值给data的数据
​ 单选框数据 选中的value值会自动付给data的数据
​ 多选框数据 选中的value值会自动添加到data数组当中
​ 下拉菜单数据 选中的id值会自动赋值给data的数据
​ 文本域数据 写上的文本会自动赋值给data的数据

7、生命周期钩子(回调函数)

​ 给我们机会可以干预vue的工作流程
​ 生命周期的执行顺序是固定的

创建前  初始化数据前    数据打印看不到
创建后    初始化数据后    数据打印可以看到

挂载前    初始页面不显示  初始页面的元素看不到
挂载后    初始页面显示    初始页面元素可以看到

更新前    页面更新前    实例数据是对的页面渲染的数据是错的
更新后    页面更新后    实例数据是对的页面渲染的数据是对的

销毁前    实例销毁前    在销毁前内部清除定时器
销毁后    实例销毁后    一般不用

使用mounted和beforeDestory比较频繁,mounted内部我们经常去做异步操作,添加事件 定时器  ajax
当调用了vm.$destroy(),    beforeDestory和destoryed才会执行,beforeDestory做收尾工作:清除定时器等


8、过渡和动画的实现

​ 参考官网
​ 类名会自动添加给需要的元素,也就是transition标签内部的元素

9、自定义过滤器(参考官网)

​ 展示数据的时候,对数据进行处理(格式化之后再显示,不会影响原数据)
​ 使用moment插件
​ 定义全局过滤器
​ Vue.filter('过滤器名字',回调函数);
​ 定义局部过滤器
​ 在vm当中fliters对象当中配置

10、vue的内置指令

​ v-text
​ v-html
​ v-on //绑定事件 简写@
​ v-bind //单向数据绑定 :
​ v-for //列表渲染
​ v-if //条件渲染
​ v-else
​ v-show //条件渲染
​ ref //为特定的元素添加引用标识,实例的$refs内部可以获取到

11、自定义指令(和定义过滤器很像,参考官网)

定义全局指令
    Vue.directive('过滤器名字',回调函数);
定义局部指令
    在vm当中directives对象当中配置

注意:指令的名称必须是全小写,不能大写

12、自定义插件(参考官网)

​ 插件的作用:
​ 定义插件对象,为Vue和Vue的实例添加一些额外功能

插件对象必须声明使用  Vue.use()
点赞
收藏
评论区
推荐文章
Chase620 Chase620
4年前
Vue方向:Vuex状态管理: 辅助函数mapState与mapGetters
1、mapState和mapGetters的作用   mapState用于将state中的数据映射到组件的计算属性中,而mapGetters用于将getter中的计算属性映射到组件的计算属性中,之前获取Vuex数据都是通过$store找到state对象,再去state中去拿数据,操作getter,muta
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表(关于日期时间时分秒显示不出来)
在使用皕杰报表设计器时,数据据里面是日期型,但当你web预览时候,发现有日期时间类型的数据时分秒显示不出来,只有年月日能显示出来,时分秒显示为0:00:00。1.可以使用tochar解决,数据集用selecttochar(flowdate,"yyyyMMddHH:mm:ss")fromtablename2.也可以把数据库日期类型date改成timestamp
劳伦斯 劳伦斯
4年前
前端面试题自检 Vue 网络 浏览器 性能优化部分
框架VueMVVM是什么?ModelViewViewModel,Model表示数据模型层。view表示视图层,ViewModel是View和Model层的桥梁,数据绑定到viewModel层并自动渲染到页面中,视图变化通知viewModel层更新数据。Vue的生命周期
Wesley13 Wesley13
3年前
jabdp之字段修订
        在表单的字段属性中有一个字段修订启用的属性,勾选上这个属性后,就可以在审核通过的情况下,修改字段的值并保存数据到数据库汇中。!(https://oscimg.oschina.net/oscnet/up3cb2e48b95b3da9f8f0c60dea357c0e8388.png)具体效果看下图:!(https://os
Stella981 Stella981
3年前
Django之Django模板
1、问:html页面从数据库中读出DateTimeField字段时,显示的时间格式和数据库中存放的格式不一致,比如数据库字段内容为2012082616:00:00,但是页面显示的却是Aug.26,2012,4p.m.答:为了页面和数据库中显示一致,需要在页面格式化时间,需要添加<td{{dayrecord.p\_time|date:
Wesley13 Wesley13
3年前
MySQL关于用户关注粉丝表的设计方案
一、数据结构分析用户关注粉丝是一个多对多的数据模型,分析对象的数据特征,我们给每个用户设计一个关注者属性和粉丝属性,用于存储用户的关注者id和粉丝id,如用户1:$arr1\'follow''\2,3,4\,'fans'\4,5,6\,\二、用户逻辑关系梳理
React技术栈支援Vue项目,你需要提前了解的 | 京东云技术团队
写在前面react整体是函数式的思想,把组件设计成纯组件,状态和逻辑通过参数传入,而vue的思想是响应式的,也就是基于是数据可变的,通过对每一个属性建立Watcher来监听,当属性变化的时候,响应式的更新对应的虚拟domreact的思路通过js来生成htm