当前位置: 首页 > news >正文

昆明seo网站建设费用关于网站开发的创业计划书

昆明seo网站建设费用,关于网站开发的创业计划书,网站开发参考书目,网页设计与制作培训班哪家好前言: 本期将会介绍 Vue 中的计算属性,他和 methods 方法又会有什么区别呢?在这里都会给你一一讲解。 篮球哥找工作专属IT岗位内部推荐: 专属内推链接:内推通道 1、computed计算属性 概念: 基于现有的数据…

前言:

本期将会介绍 Vue 中的计算属性,他和 methods 方法又会有什么区别呢?在这里都会给你一一讲解。


篮球哥找工作专属IT岗位内部推荐:

专属内推链接:内推通道


1、computed计算属性

概念:
基于现有的数据,计算出来的新属性依赖的数据变化,自动重新计算。

语法:
● 声明在 computed 配置项中,一个计算属性对应一个函数
● 使用起来和普通属性一样使用 {{ 计算属性名 }}

业务需求:
有一个 list 数据,分别是购物商品的名称和数量,需求是根据商品的数量,统计出总共的商品数量。

list: [{ id: 1, name: '洗衣粉', num: 1 },{ id: 2, name: '餐具', num: 2 },{ id: 3, name: '铅笔', num: 5 },]

简单来说,就是要通过计算属性,将 list 里面的每一项的 num 进行求和。

完整代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table {border: 1px solid #000;text-align: center;width: 240px;}th,td {border: 1px solid #000;}h3 {position: relative;}</style>
</head>
<body><div id="app"><h3>购物清单</h3><table><tr><th>名字</th><th>数量</th></tr><tr v-for="(item, index) in list" :key="item.id"><td>{{ item.name }}</td><td>{{ item.num }}个</td></tr></table><!-- 目标:统计求和,求得商品总数 --><p>商品总数:{{ totalCount }} 个</p></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {list: [{ id: 1, name: '洗衣粉', num: 1 },{ id: 2, name: '餐具', num: 2 },{ id: 3, name: '铅笔', num: 5 },]},computed: {totalCount () {// 基于现有的数据,编写求值逻辑// 计算属性函数内部,可以直接通过 this 访问到 app 实例// 需求:对 this.list 数组里面的 num 进行求和 → reducelet total = this.list.reduce((sum, item) => sum + item.num, 0)return total}}})</script>
</body>
</html>

上述代码的关键地方,就是 computed 属性里面有一个 totalCount 计算属性,计算属性的值就是最终 return 的值。

这里的写法跟 methods 里面的方法特别像!

而且这样的实现明明用 methods 里面的方法去实现也是可以实现的,为什么还要用计算属性呢?


2、computed VS methods

先来看看他们俩个的介绍:

计算属性computed
作用:封装了一段对于数据的处理,求得一个结果
语法:

  1. 写在computed配置项中
  2. 作为属性,直接使用
    • js中使用计算属性: this.计算属性
    • 模板中使用计算属性:{{计算属性}}

方法methods
作用:给Vue实例提供一个方法,调用以处理业务逻辑
语法:

  1. 写在methods配置项中
  2. 作为方法调用
    • js中调用:this.方法名()
    • 模板中调用 {{方法名()}} 或者 @事件名=“方法名”

最重要的是:

  1. 缓存特性(提升性能)
    计算属性会对计算出来的结果缓存,再次使用直接读取缓存,
    依赖项变化了,会自动重新计算 → 并再次缓存
  2. methods没有缓存特性

所以简单来说,计算属性是拥有缓存机制的!!!

这里我们来用代码看一下计算属性的缓存机制:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><!-- 调用三次计算属性 -->{{totalCount}}{{totalCount}}{{totalCount}}<!-- 调用三次方法 -->{{totalCountFn()}}{{totalCountFn()}}{{totalCountFn()}}</div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {list: [{ id: 1, name: '洗衣粉', num: 1 },{ id: 2, name: '餐具', num: 2 },{ id: 3, name: '铅笔', num: 5 },]},computed: {totalCount () {console.log('计算属性执行了')let total = this.list.reduce((sum, item) => sum + item.num, 0)return total},},methods: {totalCountFn () {console.log('methods方法执行了')let total = this.list.reduce((sum, item) => sum + item.num, 0)return total}}})</script>
</body>
</html>

观察运行结果和控制台:
在这里插入图片描述
此时通过控制台的日志打印,明显可以发现,计算属性只执行了一次,而方法却调用了三次!


3、计算属性的完整写法

上述计算属性的基本用法已经介绍完了,但是可以明显发现一个问题:

计算属性默认的简写,只能读取访问,不能 “修改”

如何理解这个 “修改” 呢?也就是说,上面的简单写法,程序员是无法直接修改计算属性的值的!比如有个计算属性 count,是不能写出 this.count = 10 这样的代码的!

但是如果使用计算属性的完整写法就可以控制计算属性的值了!

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>input {width: 30px;}</style>
</head>
<body><div id="app">姓:<input type="text" v-model="firstName"> +名:<input type="text" v-model="lastName"> =<span>{{ fullName }}</span><br><br><button @click="changeName">改名卡</button></div><script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script><script>const app = new Vue({el: '#app',data: {firstName: '王',lastName: '五',},methods: {changeName () {this.fullName = '张三'}},computed: {// 简写 → 获取,没有配置设置的逻辑// fullName () {//   return this.firstName + this.lastName// }// 完整写法 → 获取 + 设置fullName: {// (1) 当fullName计算属性,被获取求值时,执行get(有缓存,优先读缓存)//     会将返回值作为,求值的结果get () {return this.firstName + this.lastName},// (2) 当fullName计算属性,被修改赋值时,执行set//     修改的值,传递给set方法的形参set (value) {   this.firstName = value.slice(0, 1)this.lastName = value.slice(1)}}}})</script>
</body>
</html>

直接写完整的 get 和 set 方法即可,此时上述说的 this.count = 10 就会执行对应 count 的计算属性的 set 方法里面的逻辑了。

http://www.yayakq.cn/news/444323/

相关文章:

  • 深圳网站建设服务商富阳建设局网站首页
  • 响应式企业网站设计给几个网站谢谢
  • 怎么查询技术支持公司做的网站中铁雄安建设有限公司网站
  • 公司网站做的比较好重庆科技网站设计模板
  • 怎么做网站图片模板建站优点
  • 如何搭建自己得网站东莞百度seo找哪里
  • 苍山做网站用wordpress可以做出什么网站
  • 品牌宣传型网站建设方案百度指数网址
  • 做分销的网站软件自学网官方网站
  • 深圳响应式网站360免费建站为什么注册不了
  • 公司网站上传图片上海网站开发网站开发公司
  • 网站建设与运营答案百度贴吧网站开发需求分析
  • 用来做视频连接的网站西安市建设工程交易信息网
  • 济南的企业网站建设凡科小程序教程
  • 中山古镇做网站的公司网站建设相关法律法规
  • 广州英文外贸seo网站优化广州发布紧急通知
  • 上线了建站怎么样深圳注册公司怎么注册
  • 图书馆网站建设的项目报告深圳外贸网站制作
  • 养殖场网站模板创业过程中网站建设
  • 阿里巴巴网站分类导航做全屏江津集团网站建设
  • 怎么用nat做网站淘宝网页设计教程
  • 深圳市工程建设造价网站用什么工具修改wordpress
  • 网站空间便宜什么是网络营销推广三板斧
  • 视频网站建设 知乎游戏开发需要学什么编程语言
  • 重庆智能网站建设公司新手做网页做那个网站简单
  • 个人网站设计论文范文网站开发开题报告格式
  • 通辽做网站建设wordpress增加首页菜单
  • 报名网站怎么做万户网络公司怎么样
  • 网站版面设计流程包括哪些oa信息管理系统
  • 推广网站的作用旅者志 wordpress主题