位置: IT常识 - 正文

Vue2进阶笔记(vue2.)

编辑:rootadmin
Vue2进阶笔记 Vue2进阶笔记一、基础知识1.1 computed计算属性1.2 watch监视属性1.3 动态绑定样式1.4 列表循环渲染 key的探讨1.5 列表过滤1.6 数据监视1.7 表单收集1.8 过滤器1.9 生命周期函数1.10 nextTick1.11 动画与过渡1.12 脚手架配置跨域代理二、组件化开发2.1 演替与定义2.2 使用与注册2.3 VueComponent2.4 vue-cli脚手架2.5 main.js中的render2.6 ref属性2.7 props配置2.8 mixin混入2.9 插件2.10 scoped样式三、组件通信3.1 父传子3.2 子传父3.3 全局事件总线3.4 消息订阅与发布(pubsub)3.5 插槽四、Vuex4.1 概念4.2 环境搭建4.3 基本使用4.4 getters的使用4.5 四个map方法4.6 模块化五、vue-router5.1 基本使用5.2 多级路由5.3 路由query参数5.4 路由params传参5.5 路由命名5.6 路由props配置5.7 链接跳转replace属性5.8 编程式路由导航5.9 缓存路由组件5.10 路由组件生命周期函数5.11 路由守卫5.12 hash与history工作模式5.13 meta元数据

推荐整理分享Vue2进阶笔记(vue2.),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue2实践揭秘,vue进阶教程,vue2入门,vue2教程,vue2.0教程,vue2入门,vue进阶教程,vue2入门,内容如对您有帮助,希望把文章链接给更多的朋友!

Vue2进阶笔记,受益于尚硅谷天禹老师课程,在此表示感谢,全文共三万余字。

一、基础知识

tips: 1、所被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象。 2、所有不被Vue所管理的函数(定时器的回调函数、ajax的回调函数、Promise的回调函数等),最好写成箭头函数这样this的指向才是vm或组件实例对象。

1.1 computed计算属性

在computed中,可以定义一些属性,即计算属性。计算属性具有缓存功能,相比较methods效率更高。 计算属性本质是方法,只是在使用这些计算属性的时候,把他们的名称直接当作属性来使用,并不会把计算属性当作方法去调用,不需要加小括号()调用。 计算属性的求值结果会被缓存起来,方便下次直接使用(多次调用只要内部数据不改变就不会重新求值,改变了也只会计算一次,虽然有多个地方引用此属性)。getter方法内部无论如何都要return出去一个值。

<body> <div id="app"> <h1>计算属性:computed的getter/setter</h1> <br/> 姓:<input type="text" v-model="firstName"> <br/> 名:<input type="text" v-model="lastName"> <br/> 全名:<input type="text" v-model="fullName">> </div> <script> var app = new Vue({ el:"#app", data:{ firstName:"zhang", lastName:"san", }, computed: { /* 完全写法,可读可修改 fullName:{ get:function(){ return this.firstName + "-" + this.lastName }, set:function(value){ var list = value.split(' '); this.firstName=list[0] this.lastName=list[1] } } */ // 只读不修改,只有getter没有setter,简写 fullName(){ return this.firstName + "-" + this.lastName } }, }); </script> </body>Vue2进阶笔记(vue2.)

注意:计算属性可以传参,但是不能直接传参。

但是在实际开发中我们会更多地使用计算属性,因为计算属性会进行缓存,多次使用时,计算属性只会调用一次。

<p>班级:{{ getClassName(item.faceClass) }}</p>// ...// 正确写法 返回的是一个函数computed: { getClassName() { return function (classId) { const element = this.classList; for (let index = 0; index < element.length; index++) { if (element[index].classId == classId) { return element[index].className; } } }; }, },

如果直接传参则会提示错误:>TypeError: songerName is not a function

// 错误写法computed: { songName(classId) { const element = this.classList; for (let index = 0; index < element.length; index++) { if (element[index].classId == classId) { return element[index].className; } } }}1.2 watch监视属性

Watch概述     一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。Vue 实例将会在实例化时调用 $watch(),遍历 watch 对象的每一个属性。 深度监视: (1). Vue中的watch默认不监测对象内部值的改变(一层)。 (2). 配置deep:true可以监测对象内部值改变(多层)。 备注: (1). Vue自身可以监测对象内部值的改变,但Vue提供的watch默认不可以! (2). 使用watch时根据数据的具体结构,决定是否采用深度监视。

简单的监听

<body><div id="app"> <input type="text" v-model="num"></div><script src="vue.js"></script><script> const vm = new Vue({ el: '#app', data: { num: '' }, // 创建vue实例时就知道需要监视那个数据项,用这种方法 watch: { // 不考虑immediate和deep只有hander一个配置项时,可以简写 num(newVal, oldVal) { // 监听 num 属性的数据变化 // 作用 : 只要 num 的值发生变化,这个方法就会被调用 // 第一个参数 : 新值 // 第二个参数 : 旧值,之前的值 console.log('oldVal:',oldVal) console.log('newVal:',newVal) } }, // 正常写法 根据用户行为,方才知道那个数据项需要监视,用这种方法 vm.$watch('num',{ // 每个属性值发生变化就会调用这个函数 handler(newVal, oldVal) { console.log('oldVal:', oldVal) console.log('newVal:', newVal) }, // 立即处理 进入页面就触发 immediate: true, // 深度监听 监视多级结构中所有属性的变化 deep: true } })// 不考虑immediate和deep只有hander一个配置项时,可以简写 vm.$watch('num',function(newVal, oldVal) { console.log('oldVal:', oldVal) console.log('newVal:', newVal) })</script></body>

immediate(立即处理 进入页面就触发) deep(深度监听)     对象和数组都是引用类型,引用类型变量存的是地址,地址没有变,所以不会触发watch。这时我们需要进行深度监听,就需要加上一个属性 deep,值为 true。

<body><div id="app"> <input type="button" value="更改名字" @click="change"></div><script src="vue.js"></script><script> new Vue({ el: '#app', data: { food: { id: 1, name: '冰激凌' } }, methods: { change() { this.food.name = '棒棒糖' } }, watch: { // 完整写法 // 第一种方式:监听整个对象,每个属性值的变化都会执行handler // 注意:属性值发生变化后,handler执行后获取的 newVal 值和 oldVal 值是一样的 food: { // 每个属性值发生变化就会调用这个函数 handler(newVal, oldVal) { console.log('oldVal:', oldVal) console.log('newVal:', newVal) }, // 立即处理 进入页面就触发 immediate: true, // 深度监听 监视多级结构中所有属性的变化 deep: true }, // 第二种方式:监听对象的某个属性,被监听的属性值发生变化就会执行函数 // 函数执行后,获取的 newVal 值和 oldVal 值不一样 'food.name'(newVal, oldVal) { console.log('oldVal:', oldVal) // 冰激凌 console.log('newVal:', newVal) // 棒棒糖 } } })</script></body>

Watch和computed的区别

1、 computed支持缓存,只有依赖数据发生改变,才会重新进行计算;而watch不支持缓存,数据变,直接会触发相应的操作。 2、computed不支持异步,当computed内有异步操作时无效,无法监听数据的变化,而watch支持异步。 3、computed属性值会默认走缓存,计算属性是基于它们的响应式依赖进行缓存的,也就是基于data中

本文链接地址:https://www.jiuchutong.com/zhishi/297861.html 转载请保留说明!

上一篇:非常好看的html网页个人简历(非常好看的头像)

下一篇:常用的优化器合集(优化器总结)

  • 抖音怎么设置同城优先(抖音怎么设置同城观看)

    抖音怎么设置同城优先(抖音怎么设置同城观看)

  • applewatch7如何实时检测心跳

    applewatch7如何实时检测心跳

  • 白帽黑客和黑帽黑客的区别(白帽黑客黑帽黑客)

    白帽黑客和黑帽黑客的区别(白帽黑客黑帽黑客)

  • 华为手机怎么开个人热点(华为手机怎么开两个抖音)

    华为手机怎么开个人热点(华为手机怎么开两个抖音)

  • 2g网络什么时候出来的(2g网络什么时候停运)

    2g网络什么时候出来的(2g网络什么时候停运)

  • 微信视频动态怎么保存(微信视频动态怎么弄)

    微信视频动态怎么保存(微信视频动态怎么弄)

  • 美团众包拒单多久恢复(美团众包拒单多少封号)

    美团众包拒单多久恢复(美团众包拒单多少封号)

  • imei1和imei2的区别(imei和imei2有什么区别)

    imei1和imei2的区别(imei和imei2有什么区别)

  • 路由器选择需要考虑的基本因素(设置路由器需要)

    路由器选择需要考虑的基本因素(设置路由器需要)

  • 快手刷礼物记录怎么看(快手刷礼物记录怎么删除掉)

    快手刷礼物记录怎么看(快手刷礼物记录怎么删除掉)

  • nova3和nova3i手机壳通用吗(nova3和nova3i手机膜通用吗)

    nova3和nova3i手机壳通用吗(nova3和nova3i手机膜通用吗)

  • qq被屏蔽了还能加好友吗(qq被屏蔽了还能发红包吗)

    qq被屏蔽了还能加好友吗(qq被屏蔽了还能发红包吗)

  • 飞行模式可以接打电话吗(飞行模式可以接电话打电话吗)

    飞行模式可以接打电话吗(飞行模式可以接电话打电话吗)

  • 手机b站怎么举报视频(b站app怎么举报)

    手机b站怎么举报视频(b站app怎么举报)

  • 蓝牙耳机一边响一边不响怎么办(蓝牙耳机一边响一边断断续续)

    蓝牙耳机一边响一边不响怎么办(蓝牙耳机一边响一边断断续续)

  • 苹果ipad无法连接服务器(苹果iPad无法连接手机热点)

    苹果ipad无法连接服务器(苹果iPad无法连接手机热点)

  • 11pro广角怎么用(苹果11por广角怎么用)

    11pro广角怎么用(苹果11por广角怎么用)

  • 苹果屏幕白斑怎么修复(苹果屏幕白斑怎么设置)

    苹果屏幕白斑怎么修复(苹果屏幕白斑怎么设置)

  • 小米8充不进去电(小米8充不进去电须要关机重启才可以)

    小米8充不进去电(小米8充不进去电须要关机重启才可以)

  • 如何解除表格公式(怎么解除表格中的公式)

    如何解除表格公式(怎么解除表格中的公式)

  • 车载蓝牙有杂音滋滋滋(车载蓝牙有杂音但收音机正常)

    车载蓝牙有杂音滋滋滋(车载蓝牙有杂音但收音机正常)

  • 网络慢跟路由器有关系吗(网络慢跟路由器有没有关系)

    网络慢跟路由器有关系吗(网络慢跟路由器有没有关系)

  • 核显有什么用(nas核显有什么用)

    核显有什么用(nas核显有什么用)

  • 什么是vb(什么是vb程序设计)

    什么是vb(什么是vb程序设计)

  • 北方针叶林中的欧洲棕熊幼崽,芬兰 (© Jules Cox/Minden Pictures)(北方针叶林的特征有哪些?)

    北方针叶林中的欧洲棕熊幼崽,芬兰 (© Jules Cox/Minden Pictures)(北方针叶林的特征有哪些?)

  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)(数据库系统课程学什么)

    数据库系统课程设计(高校成绩管理数据库系统的设计与实现)(数据库系统课程学什么)

  • 线程池中的一个 BUG,注意了!!(线程池中的一个线程执行完一个任务后)

    线程池中的一个 BUG,注意了!!(线程池中的一个线程执行完一个任务后)

  • 建筑公司分包项目违法吗
  • 一般纳税人销项税和进项税如何抵扣
  • 税款减半征收什么意思
  • 消费税的三种计税方法及各自的计算公式
  • 新成立的销售公司有哪些
  • 清算资产处置
  • 企业流动资产周转率下降的原因
  • 记账凭证拆开
  • 发票上盖了老税号怎么办
  • 交易性金融资产属于什么科目
  • 售后回租业务是什么
  • 小微企业如何申请土地建厂房
  • 罚款收入需要开票吗
  • 固定资产年数总额法
  • 个体工商户需要缴纳哪些税
  • 作为福利手段福利概念的三个条件是
  • 预付货款工程完工后如何结转?
  • 财务费用手续费有哪些
  • 非营利组织对外捐赠
  • 开专票需要对方是一般纳税人吗
  • 企业所得税收入是什么意思
  • 增值税税率改革的意义
  • 增值税减免了,附加税申报表还用填吗
  • 收到委托代销清单的会计分录
  • 预估成本费用会计科目
  • 个体户怎么给供货公司
  • 综合所得收入包括哪些所得项目
  • 免费WiFi万能钥匙
  • win7取消共享文件夹
  • 进项税额加计抵减会计分录
  • 紧急重新启动
  • 以前年度损益调整借贷方向
  • 补申报以前年度税款
  • 土地使用权进项税如何抵扣
  • PHP:sys_getloadavg()的用法_misc函数
  • 向银行借入长期借款50万元
  • 其他综合收益的来源
  • 煤炭贸易公司账务大全
  • 与取得收入无关的成语
  • Chat GPT实用案例——VUE+Chat GPT实现聊天功能教程
  • 企业所得税纳税义务发生时间
  • 什么是神经网络算法
  • vue清空input file的值
  • 加收税收滞纳金属于行政处罚吗
  • 增值税专用发票上注明的价款含税吗
  • 预缴的企业所得税能抵扣企业所得额嘛
  • mongodb分区分片
  • 两个公司的钱转来转去
  • 企业合并财务报表论文
  • 采用工作底稿法编制现金流量表是以工作底稿为
  • 企业所得税会计利润总额计算公式
  • 数据库生成随机数函数
  • 当月减少的固定资产为什么计提折旧
  • 入股投资的钱能取出来吗
  • 增值税留抵退税的账务处理
  • 收到某单位投入机器一台
  • 城镇土地使用税减免税政策
  • 货物已经入库发货怎么办
  • 反记账是什么
  • 年初建账考虑要点有哪些
  • macbookair网页视频看不了
  • 苹果电脑如何访问windows共享文件
  • win1020h2版本千万别更新
  • sesvc.exe是什么进程
  • 如何关闭win8快速启动
  • win10打开资源管理器很慢
  • 轻量级java开发工具
  • kb4592449-windows安全每月质量汇总
  • cocos creator打包
  • ping命令的基本使用方法
  • 基于像素的分类方法
  • css you
  • python日历查询系统
  • node.js异步编程
  • JavaScript replace(rgExp,fn)正则替换的用法
  • android使用方法
  • 个人总结的几个方面
  • 发布python程序
  • javascript获取复选框的值
  • 广西税务12366如何查看代他人缴费发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设