Vueインスタンスの計算されたプロパティ

Vueインスタンスの計算されたプロパティ

効果

メソッド関数をデータ値として参照する

計算では、いくつかの属性を定義できます。これらの属性は[計算属性]と呼ばれます。計算属性の本質はメソッドですが、これらの計算属性を使用する場合、それらの名前を属性として直接使用します。使用するには、計算を呼び出さないでください。メソッドとしてのプロパティ。

使用上の注意

  • 計算された属性は、参照するときに追加してはなりません(呼び出すには、通常の属性として使用するだけです)。
  • 計算された属性、この関数で使用されるデータのデータが変更されている限り、計算された属性の値はすぐに再計算されます。データが変更されていない場合、計算された属性は再評価されません。
  • 計算された属性の評価結果は、次回直接使用するためにキャッシュされます。計算された属性メソッドの場合は、

文法

<body>
		<div id="app">
			<label>请输入任意信息:</label>
			<input type="text" name="" id="" v-model="param01" />
			<br />
			<label>结果信息:</label>
			<!-- 将一个方法作为一个data来使用 ,我们并没有在data属性里面定义result1-->
			<input type="text" name="" id="" v-bind:value="result" />
		</div>
		
		<script type="text/javascript">
			var vm=new Vue({
     
     
				el:'#app',
				data:{
     
     
					param01:''
				},
				methods:{
     
     },
				computed:{
     
     
					// computed属性里面的方法,会监听方法里面引用的data们有没有改变,如果有改变,就会触发这个方法
					'result':function(){
     
     
						return this.param01
					}
				}
			})
		</script>
	</body>

ケース(検索エンジン(配列))

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
		<title>Vue Template</title>
		<link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css"/>
		<script src="../js/Vue/Vue2.6.11.js" type="text/javascript" charset="utf-8"></script>
	</head>
	<body>
		<div id="app" class="container">
			<div class="row"style="margin-top: 15px;">
				<div class="col-md-6 col-md-offset-3">
					<input type="text" name="" class="form-control" v-model="msg" />
				</div>
			</div>
			<div class="row">
				<div class="col-md-6 col-md-offset-3">
					<ul class="list-group">
						<li v-for="item in result" class="list-group-item">{
   
   {item}}</li>
					</ul>
				</div>
			</div>
		</div>
		
		<script type="text/javascript">
			var vm=new Vue({
     
     
				el:'#app',
				data:{
     
     
					msg:'',
					list:[
						'asdafaffasdasd',
						'sd123454664',
						'wscggthtysdfe',
						'rvbhtsyynu'
					]
				},
				methods:{
     
     },
				computed:{
     
     
					'result':function(){
     
     
						// 搜索框里面没有字符默认显示全部,或者全都不显示
						if(this.msg.trim()=='')
						{
     
     
							return this.list
						}else{
     
     
							// 和数组里面每一个匹配有就装到数组中再返回
							var result=new Array()
							
							for(var i=0;i<this.list.length;i++){
     
     
								if((this.list[i].indexOf(this.msg))!=-1){
     
     
									result.unshift(this.list[i])
								}
							}
							
							return result
						}
					}
				}
			})
		</script>
	</body>
</html>

効果
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_42418169/article/details/108867786