1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>姓名案例_watch实现</title>
- <!-- 引入vue -->
- <script type="text/javascript" src="../js/vue.js"></script>
- </head>
- <body>
- <!--
- computed和watch之间的区别:
- 1、computed能完成的功能,watch都可以完成。
- 2、watch能完成的功能,computed不一定能完成,例如:watch可以进行异步操作。
- 两个重要的小原则:
- 1、所有被Vue管理的函数,最好写成普通函数,这样this的指向才是vm或组件实例对象。
- 2、所有不被Vue管理的函数(定时器的回调函数、Ajax的回调函数、Promise的回调函数等),
- 最好写成箭头函数,这样this的指向才是vm或组件实例对象。
- -->
- <!-- 准备好一个容器 -->
- <div id="root">
- 姓:<input type="text" v-model="firstName"></input><br><br>
- 名:<input type="text" v-model="lastName"></input><br><br>
- 全名:<span>{{fullName}}</span>
- </div>
-
- </body>
- <script type="text/javascript">
- Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
- const vm = new Vue({
- el:'#root',
- data:{
- firstName:'张',
- lastName:'三',
- fullName:'张 - 三'
- },
- watch:{
- firstName(val){
- setTimeout(() => {
- this.fullName = val + '-' + this.lastName
- }, 1000);
- },
- lastName(val){
- this.fullName = this.firstName + '-' + val
- }
- }
- })
- </script>
- </html>
|