computed 的作用主要是对原数据进行改造输出。改造输出:包括格式的编辑,大小写转换,顺序重排,添加符号……。
# 格式化输出结果:
我们先来做个读出价格的例子:我们读书的原始数据是price:100 但是我们输出给用户的样子是(¥100元)。
主要的javascript代码
~~~
computed:{
newPrice:function(){
return this.price='¥' + this.price + '元';
}
}
~~~
~~~
<body>
<div id="app">
{{newPrice}}
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
price: 100
},
computed: {
newPrice: function () {
return this.price = '$' + this.price + '元';
}
}
});
</script>
~~~
现在输出的结果就是:`$100元`
# 用计算属性反转数组
例如:我们得到了一个新闻列表的数组,它的顺序是安装新闻时间的顺序正序排列的,也就是早反生的新闻排在前面。这是反人类的,我们需要给他反转。这时我们就可以用到我们的计算属性了。
没有排序的新闻列表,是安装日期正序排列的
~~~
var newsList=[
{title:'香港或就“装甲车被扣”事件追责 起诉涉事运输公司',date:'2017/3/10'},
{title:'日本第二大准航母服役 外媒:针对中国潜艇',date:'2017/3/12'},
{title:'中国北方将有明显雨雪降温天气 南方阴雨持续',date:'2017/3/13'},
{title:'起底“最短命副市长”:不到40天落马,全家被查',date:'2017/3/23'},
];
~~~
我们希望输出的结果:
* 起底“最短命副市长”:不到40天落马,全家被查-2017/3/23
* 中国北方将有明显雨雪降温天气 南方阴雨持续-2017/3/13
* 日本第二大准航母服役 外媒:针对中国潜艇-2017/3/12
* 香港或就“装甲车被扣”事件追责 起诉涉事运输公司-2017/3/10
我们的在computed里的javascript代码:我们用js原生方法给数组作了反转
~~~
computed:{
reverseNews:function(){
return this.newsList.reverse();
}
}
~~~
~~~
<body>
<div id="app">
<ul>
<li v-for="item in reverseNews">
{{item.title}}---{{item.date}}
</li>
</ul>
</div>
</body>
<script type="text/javascript">
var newsList = [{
title: '香港或就“装甲车被扣”事件追责 起诉涉事运输公司',
date: '2017/3/10'
},
{
title: '日本第二大准航母服役 外媒:针对中国潜艇',
date: '2017/3/12'
},
{
title: '中国北方将有明显雨雪降温天气 南方阴雨持续',
date: '2017/3/13'
},
{
title: '起底“最短命副市长”:不到40天落马,全家被查',
date: '2017/3/23'
},
];
var app = new Vue({
el: '#app',
data: {
newsList: newsList,
},
computed: {
reverseNews: function () {
return this.newsList.reverse();
}
}
});
</script>
~~~
总结:computed 属性是非常有用,在输出数据前可以轻松的改变数据
- HTML
- 标签
- 超链接
- 列表
- 表格和表单
- h5新增标签
- 快捷方式
- 标签包含
- CSS
- 选择器
- 行内,块元素,链接
- css三大特性
- 盒子模型
- 定位
- css可见性
- emment书写
- 文本元素
- 外观属性
- 背景
- 浮动
- ps
- 用户界面样式
- 显示和隐藏
- 过渡
- 2D,3D变形
- 动画animation
- 伸缩布局(CSS3)
- BFC
- 优雅降级和渐进增强
- 3D旋转
- 双飞翼和圣杯
- JS基础
- 输出消息的几种方式
- 数据类型
- Date对象
- Math对象
- Array对象
- 字符串常用方法
- 数据类型转换
- 等号运算
- 代码调试
- 数组
- 函数
- WebAPI
- webapi简介
- 获取页面元素
- 事件
- 属性操作
- 创建元素
- 节点操作
- 事件详解
- BOM
- 位置相关属性
- 拖拽弹窗
- 弹出层加遮罩
- ES6
- let和const
- 解构表达式变化
- 函数优化
- map和reduce
- nrm
- npm
- npm基础
- package.json
- 淘宝镜像
- webpack
- 介绍
- 多入口文件(Multiple entry files)
- Webpack CSS loader加载器
- webpack Image loader 加载图片
- uglify-js压缩打包JS
- webpack构建本地服务器
- vue内部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定义指令
- vue.extend构造器的延伸
- vue.set全局操作
- Vue的生命周期(钩子函数)
- Template 制作模版
- Component 初识组件
- Component 组件props 属性设置
- Component 父子组件关系
- Component 标签
- vue选项
- propsData Option全局扩展数据传递
- computed Option 计算选项
- Methods Option 方法选项
- watch选项监控数据
- Mixins 混入选项操作
- Extends Option 扩展选项
- delimiters 选项
- vue实例和内置组件
- 实例属性
- 实例方法
- 实例事件
- 内置组件 -slot
- vue-cli
- vue-cli介绍
- 项目目录结构
- vue-cli模板
- vue-router
- 简介
- 配置子路由
- 参数传递
- 单页面多路由区域操作
- url传递参数
- vscode