vue day-04
一、计算属性


代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="./js/vue.js"></script>
</head>
<body>
<div id="app">
<!-- <input type="text" v-model="name"> ---》》 {{// name.slice(0, 1).toUpperCase() + name.slice(1)}}-->
<input type="text" v-model="name"> ---》》 {{handleUpper()}}
<hr>
<input type="text" v-model="name2">--->{{upper}}
</div>
</body>
<script>
var vm = new Vue({
el: '#app',
data: {
name: '',
name2: ''
},
methods: {
handleUpper() {
// 只要页面刷新就会变化
console.log('我执行了')
return this.name.slice(0, 1).toUpperCase() + this.name.slice(1)
}//这里首字母大写用函数不好,因为当我们写第二个input框,且没有使用这个函数的时候,我们执行代码会发现,
// 只要输入内容,函数就执行一次,非常的浪费资源,以此我们引出了计算属性
},
computed: {
upper() { // 以后使用upper不需要加括号,直接当属性来使用
// 只有涉及到计算属性中使用的变量发生变化,它才重新运算
console.log('计算属性我执行了')
return this.name2.slice(0, 1).toUpperCase() + this.name2.slice(1)
}
}
})
</script>
</html>
二、监听属性
1、功能:发生变化干一个事,发生变化就干一个事
2、使用场景:
① 路飞项目中有一个分页功能,规定五条一页还是还是一页,每到下一页信息都需要刷新
② 有这么几个导航条,男生、女生、未知;如果点击男生,那么筛选出来的都是男生信息,如果我一点击到女生,向后端发请求,那么就会触发一个函数,改为女生的信息
三、组件介绍和定义
四、父子通信之父传子
五、父子通信之子传父
六、ref属性
七、动态组件
八、插槽
九、vue-cli

浙公网安备 33010602011771号