三、Vue成员

一、分隔符成员

1. 作用

	修改插值表达式符号

	
	
2. 代码
		
	delimeters: ['[{', '}]']

二、过滤器成员

1. 特点

	a. 在filters成员中定义过滤器方法
	
	b. 可以对多个值进行过滤,过滤时还可以额外传入辅助参数。
	
	c. 过滤的结果可以进行下一次过滤(过滤的串联)
	
	
2. 过滤器示例

	<body>
	    <div id="app">
	        <p>{{ num | f1 }}</p>
	        <p>{{ a, b | f2(30, 40) | f3 }}</p>
	    </div>
	</body>
	
	<script src="js/vue.js"></script>
	<script>
	    new Vue({
	        el: '#app',
	        data: {
	            num: 10,
	            a: 10,
	            b: 20,
	        },
	        filters: {
	            // 传入所有要过滤的条件,返回值就是过滤的结果
	            f1 (num) {
	                console.log(num);
	                return num * 10;
	            },
	            f2 (a, b, c, d) {
	                console.log(a, b, c, d);
	                return a + b + c + d;
	            },
	            f3 (num) {
	                return num * num;
	            }
	        }
	    })
	</script>

三、计算属性成员

1. 特点

	a. computed计算属性可以声明方法属性(方法属性一定不能在data中重复声明)
	
	b. 方法属性必须在页面中渲染,才会启用绑定的方法,方法属性的值就是绑定方法的返回值
	
	c. 绑定的方法中出现的所有变量都会被监听,任何一个变化发生值更新都会重新出发绑定方法,从而更新方法属性的值


2. 针对的问题

	一个变量值依赖于多个变量值


3. 示例

	<body>
	    <div id="app">
	        <input type="number" min="0" max="100" v-model="n1">
	        +
	        <input type="number" min="0" max="100" v-model="n2">
	        =
	        <button>{{ result }}</button>
	    </div>
	</body>
	
	<script src="js/vue.js"></script>
	<script>
	    new Vue({
	        el: '#app',
	        data: {
	            n1: '',
	            n2: '',
	        },
	        computed: {
	            result () {
	                console.log('被调用了');
	                n1 = +this.n1;
	                n2 = +this.n2;
	                return n1 + n2;
	            }
	        }
	    })
	</script>

四、监听属性成员

1. 特点

	a. 监听的属性需要在data中声明,监听方法不需要返回值
	
	b. 监听的方法名就是监听的属性名,该属性值发生更新时就会回调监听方法
	
	c. 监听方法有两个回调参数:当前值,上一次值


2. 针对的问题

	多个变量值依赖于一个变量值


3. 示例

	<body>
	    <div id="app">
	        <p>姓名:<input type="text" v-model="full_name"></p>
	        <p>姓:{{ first_name }}</p>
	        <p>名:{{ last_name }}</p>
	    </div>
	</body>
	
	<script src="js/vue.js"></script>
	<script>
	    new Vue({
	        el: '#app',
	        data: {
	            full_name: '',
	            first_name: '未知',
	            last_name: '未知',
	        },
	        watch: {
	            full_name(n, o) {
	                name_arr = n.split('');
	                this.first_name = name_arr[0];
	                this.last_name = name_arr[1];
	            },
	        }
	    })
	</script>
原文地址:https://www.cnblogs.com/binyuanxiang/p/12057692.html