IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue.js03 -> 正文阅读

[JavaScript知识库]Vue.js03

一、计算属性的基本使用

1.computed:属性对象中定义计算属性的方法

2.使用{{方法名}}显示计算结果

3.格式:(方法的返回值作为属性值)

comouted:{

? ? ? ? 方法名(){

? ? ? ? ? ? ? ? return this.name1+' '+this.name2

????????}

}

<body>
	<div id="app">
		<h2>{{firstName + '' + lastName}}</h2>//方法一
		<h2>{{firstName}} {{lastName}}</h2>//方法二
		<h2>{{getFullName()}}</h2>//方法三
		<h2>{{fullName}}</h2>//方法四:计算属性
	</div>
	<script src="../js/vue.js"></script>
	<script type="text/javascript">
		const app = new Vue({
			el:'#app',
			data:{
				firstName:'Lebron',
				lastName:'James'
			},
			//计算属性
			computed:{
				fullName:function(){
					return this.firstName + '' + this.lastName
				}

			},
			methods:{
				getFullName(){
					return this.firstName + '' + this.lastName

				}
			}
		})
	</script>

</body>

二、计算属性复杂操作示例

<body>
	<div id="app">
		<h2>总价格:{{totalPrice}}</h2>
	</div>
	<script src="../js/vue.js"></script>
	<script type="text/javascript">
		const app = new Vue({
			el:'#app',
			data:{
				books:[
					{id:110,name:'苦难辉煌',price:50},
					{id:111,name:'离散数学',price:60},
					{id:112,name:'大学物理',price:70},
					{id:113,name:'数据结构教程',price:80},
				]
			},
			//计算属性
			computed:{
				totalPrice:function(){
					let result =0
					for(let i=0;i<this.books.length;i++){
						result +=this.books[i].price
					}
					return result
				}

			},
	</script>
</body>

三、计算属性的setter和getter

1.每个计算属性都包含一个getter和setter,通过 getter/setter 实现对属性数据的显示和监视

2.一般情况下是没有 setter 的,computed 预设只有 getter ,也就是只能读取,不能改变设值

3.计算属性默认只有 getter,因为是默认值所以我们也常常省略不写,其完整代码如下:

computed: {
    fullName: {
      get(){
         return this.firstName + ' ' + this.lastName
      }
    }
  }

4.计算属性包含setter和getter的完整写法

<body>
	<div id="app">
		<h2>总价格:{{totalPrice}}</h2>
	</div>
	<script src="../js/vue.js"></script>
	<script type="text/javascript">
		const app = new Vue({
			el:'#app',
			data:{
				firstName:'Lebron',
				lastName:'James'
			},
			//计算属性
			//计算属性一般是没有set方法,只读属性
			//计算属相的完整写法
			computed:{
				fullName:{
					
					set:function(newValue){
						//console.log('------',newValue);
						const names = newValue.split('');
						this.firstName=names[0];
						this.lastName=names[1];
					},
					get:function(){
						return this.firstName + '' + this.lastName
					}
					
				}

			},
		}
	</script>
</body>

四、计算属性与methods的比较

1.计算属性和methods的执行结果都是相同的

2.当计算属性没有依赖data中的数据时,第一次使用计算属性时,会把第一次的结果进行缓存,后?

? ?面再次使用计算属性,都会去第一次的结果中进行查找

3.methods方法,每调用一次,就会触发一次,计算属性只调用一次

4.计算属性的用法与data中的数据用法一样,因此计算属性在使用时,不加 ( )

5.methods方法在调用时,( ) 可加可不加

6.计算属性具有缓存功能,methods方法没有

<body>
	<div id="app">
		<h2>{{firstName + '' + lastName}}</h2>//方法一直接拼接,语法过于繁琐
		<h2>{{firstName}} {{lastName}}</h2>//方法二:直接拼接,语法过于繁琐
		<h2>{{getFullName()}}</h2>//方法三:methods
		<h2>{{fullName}}</h2>//方法四:计算属性
	</div>
	<script src="../js/vue.js"></script>
	<script type="text/javascript">
		const app = new Vue({
			el:'#app',
			data:{
				firstName:'Lebron',
				lastName:'James'
			},
			//计算属性
			computed:{
				fullName:function(){
					console.log('fullName');//调用四次
					return this.firstName + '' + this.lastName
				}

			},
			methods:{
				getFullName(){
					console.log('getFullName');//调用一次
					return this.firstName + '' + this.lastName

				}
			}
		})
	</script>
</body>

五、ES6补充

? ? ?在ES6之前,常用的声明变量的方式

? ? ? ?1.var 如: var b?= 6;

? ? ? ?2.function 如: function A(){…},function是定义一个函数,实际上也相当于是创建变量的一种

? ? ? ? ? 方式

? ? 在ES6之后,又新增了几种声明变量的方式

? ? ? 1.let let关键字声明的变量具有块级作用域,如: let c?= 1;

? ? ? 2.const const关键声明的变量,一旦已经关联值就不能再跟其它值关联,如: const n?= ‘abc’;

? ? ? 3. import 利用import关键字导入其它模块,如:import xx from ‘./xx.js’

? ? ? 4.class 定义一个类:实际也是声明变量的一种,如:class B{}

? ?let定义变量时和var有两个区别:?

? ? 1.块级作用域、不会变量提升?

? ? 2.不能定义在块中已有标识符同名的变量


?


?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:32:40  更:2021-11-19 17:33:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 20:38:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码