一:监视

1.使用keyup

  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. <script src="./lib/vue-2.4.0.js"></script>
  10. </head>
  11.  
  12. <body>
  13. <div id="app">
  14.  
  15. <!-- 分析: -->
  16. <!-- 1. 我们要监听到 文本框数据的改变,这样才能知道 什么时候去拼接 出一个 fullname -->
  17. <!-- 2. 如何监听到 文本框的数据改变呢??? -->
  18.  
  19. <input type="text" v-model="firstname" @keyup="getFullname"> +
  20. <input type="text" v-model="lastname" @keyup="getFullname"> =
  21. <input type="text" v-model="fullname">
  22.  
  23. </div>
  24.  
  25. <script>
  26. // 创建 Vue 实例,得到 ViewModel
  27. var vm = new Vue({
  28. el: '#app',
  29. data: {
  30. firstname: '',
  31. lastname: '',
  32. fullname: ''
  33. },
  34. methods: {
  35. getFullname() {
  36. this.fullname = this.firstname + '-' + this.lastname
  37. }
  38. }
  39. });
  40. </script>
  41. </body>
  42.  
  43. </html>

  

2.使用watch监视文本框的变化

  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. <script src="./lib/vue-2.4.0.js"></script>
  10. </head>
  11.  
  12. <body>
  13. <div id="app">
  14.  
  15. <input type="text" v-model="firstname"> +
  16. <input type="text" v-model="lastname"> =
  17. <input type="text" v-model="fullname">
  18.  
  19. </div>
  20.  
  21. <script>
  22. // 创建 Vue 实例,得到 ViewModel
  23. var vm = new Vue({
  24. el: '#app',
  25. data: {
  26. firstname: '',
  27. lastname: '',
  28. fullname: ''
  29. },
  30. methods: {},
  31. watch: { // 使用这个 属性,可以监视 data 中指定数据的变化,然后触发这个 watch 中对应的 function 处理函数
  32. 'firstname': function (newVal, oldVal) {
  33. // console.log('监视到了 firstname 的变化')
  34. // this.fullname = this.firstname + '-' + this.lastname
  35.  
  36. // console.log(newVal + ' --- ' + oldVal)
  37.  
  38. this.fullname = newVal + '-' + this.lastname
  39. },
  40. 'lastname': function (newVal) {
  41. this.fullname = this.firstname + '-' + newVal
  42. }
  43. }
  44. });
  45. </script>
  46. </body>
  47.  
  48. </html>

  

3.watch监视路由地址的改变

  监视非dom。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. <script src="./lib/vue-2.4.0.js"></script>
  10. <!-- 1. 导入包 -->
  11. <script src="./lib/vue-router-3.0.1.js"></script>
  12. </head>
  13.  
  14. <body>
  15. <div id="app">
  16. <router-link to="/login">登录</router-link>
  17. <router-link to="/register">注册</router-link>
  18.  
  19. <!-- 容器 -->
  20. <router-view></router-view>
  21.  
  22. </div>
  23.  
  24. <script>
  25. // 2. 创建子组件
  26. var login = {
  27. template: '<h3>这是登录子组件,这个组件是 奔波霸 开发的。</h3>'
  28. }
  29.  
  30. var register = {
  31. template: '<h3>这是注册子组件,这个组件是 霸波奔 开发的。</h3>'
  32. }
  33.  
  34. // 3. 创建一个路由对象
  35. var router = new VueRouter({
  36. routes: [ // 路由规则数组
  37. { path: '/', redirect: '/login' },
  38. { path: '/login', component: login },
  39. { path: '/register', component: register }
  40. ],
  41. linkActiveClass: 'myactive' // 和激活相关的类
  42. })
  43.  
  44. // 创建 Vue 实例,得到 ViewModel
  45. var vm = new Vue({
  46. el: '#app',
  47. data: {},
  48. methods: {},
  49. // router: router
  50. router,
  51. watch: {
  52. // this.$route.path
  53. '$route.path': function (newVal, oldVal) {
  54. // console.log(newVal + ' --- ' + oldVal)
  55. if (newVal === '/login') {
  56. console.log('欢迎进入登录页面')
  57. } else if (newVal === '/register') {
  58. console.log('欢迎进入注册页面')
  59. }
  60. }
  61. }
  62. });
  63. </script>
  64. </body>
  65.  
  66. </html>

  

4.计算属性监控

  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. <script src="./lib/vue-2.4.0.js"></script>
  10. </head>
  11.  
  12. <body>
  13. <div id="app">
  14.  
  15. <input type="text" v-model="firstname"> +
  16. <input type="text" v-model="middlename"> +
  17. <input type="text" v-model="lastname"> =
  18. <input type="text" v-model="fullname">
  19.  
  20. <p>{{ fullname }}</p>
  21. <p>{{ fullname }}</p>
  22. <p>{{ fullname }}</p>
  23.  
  24. </div>
  25.  
  26. <script>
  27. // 创建 Vue 实例,得到 ViewModel
  28. var vm = new Vue({
  29. el: '#app',
  30. data: {
  31. firstname: '',
  32. lastname: '',
  33. middlename: ''
  34. },
  35. methods: {},
  36. computed: { // 在 computed 中,可以定义一些 属性,这些属性,叫做 【计算属性】, 计算属性的,本质,就是 一个方法,只不过,我们在使用 这些计算属性的时候,是把 它们的 名称,直接当作 属性来使用的;并不会把 计算属性,当作方法去调用;
  37.  
  38. // 注意1: 计算属性,在引用的时候,一定不要加 () 去调用,直接把它 当作 普通 属性去使用就好了;
  39. // 注意2: 只要 计算属性,这个 function 内部,所用到的 任何 data 中的数据发送了变化,就会 立即重新计算 这个 计算属性的值
  40. // 注意3: 计算属性的求值结果,会被缓存起来,方便下次直接使用; 如果 计算属性方法中,所以来的任何数据,都没有发生过变化,则,不会重新对 计算属性求值;
  41. 'fullname': function () {
  42. console.log('ok')
  43. return this.firstname + '-' + this.middlename + '-' + this.lastname
  44. }
  45. }
  46. });
  47. </script>
  48. </body>
  49.  
  50. </html>

  

006 vue监控的更多相关文章

  1. 006服务监控看板Hystrix Dashboard

    1.POM配置 和普通Spring Boot工程相比,仅仅添加了Hystrix Dashboard和Spring Boot Starter Actuator依赖 <dependencies> ...

  2. 006——VUE中的内容与属性中使用javascript表达式的方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. (尚006)Vue计算属性之set与get

    test004.html <!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...

  4. vue 前端框架 (三)

    VUE 生命周期 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> < ...

  5. vue中修改了数据但视图无法更新的情况

    数组数据变动:我们使用某些方法操作数组,变动数据时,有些方法无法被vue监测,有些可以 Vue包装了数个数组操作函数,使用这些方法操作的数组去,其数据变动时会被vue监测: push() pop() ...

  6. vue中修改了数据但视图无法更新的情况[转载]

    我们有时候常碰到vue中明明修改了数据,但是视图无法更新,因此我总结了一点点碰到此类的情况: 1.v-for遍历的数组,当数组内容使用的是arr[0].xx =xx更改数据,vue无法监测到 数组数据 ...

  7. vue 知识点

    Vue 中的 slot: 概念:槽/slot是组件在模板中为调用者预留的位置,使用<slot>元素声明一个 槽.在最终的视图中,调用者模板中被调用组件的内容,将填充<slot> ...

  8. 从后端到前端之Vue(二)写个tab试试水

    上一篇写了一下table,然后要写什么呢?当然是tab了.动态创建一个tab,里面放一个table,这样一个后台管理的基本功能(之一)就出来了. 好吧,这里其实只是试试水,感受一下vue的数据驱动可以 ...

  9. Vue的属性、事件、插槽

    属性 自定义属性props ->组件的propos中声明的属性 原生属性attrs ->没有声明属性,默认自动挂载在组件的根元素上,inheritAttrs可以关闭自动挂载 特殊属性cla ...

随机推荐

  1. Nginx 配置文件nginx.conf中文详解

    ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...

  2. thymeleaf模板、thymeleaf语法相关中文文档教程

    thymeleaf模板在SpringBoot中是默认的模范引擎技术,SpringBoot不推荐使用比较老旧的jsp.但如果您想使用jsp的话,当然也可以.我这里为您讲述thymeleaf模板的基本th ...

  3. Linux正则表达式、shell基础、文件查找及打包压缩

    Linux正则表达式.shell基础.文件查找及打包压缩 一.正则表达式 Linux正则表达式分为2类: 1.基本正则表达式(BRE) 2.扩展正则表达式(ERE) 两者的区别: 1.使用扩展正则表达 ...

  4. BS开发扫盲篇-前端技术风云录

    BS开发扫盲篇-前端技术风云录 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.     一.HTML诞生 HTML(HyperText Markup Language)超文本标记语言 ...

  5. httpd的压力测试工具-ab工具使用案例

    httpd的压力测试工具-ab工具使用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.httpd自带的工具程序 事实上,在我们安装完Apache之后,它默认就会给我们安 ...

  6. js获取ip内网地址

    <script type="text/javascript"> function getUserIP(onNewIP) { // onNewIp - your list ...

  7. mysql终止当前正在执行的sql语句

    show processlist;找出你要停止的语句然后找出你要终止的语句的idkill 248

  8. ThinkPHP模型中的HAS_ONE,BELONG_TO,HAS_MANY实践

    因为很熟悉DJANGO,所以对TP,要慢慢适应. 1,SQL文件 /* Navicat MySQL Data Transfer Source Server : localhost_3306 Sourc ...

  9. WinForm利用AForge.NET调用电脑摄像头进行拍照和视频

    当然了,你需要去官网下载类库,http://www.aforgenet.com/ 调用本机摄像头常用的组件: AForge AForge.Controls AForge.Imaging AForge. ...

  10. MSc in Robotics

    MSc in RoboticsProgramming Methods for Robotics AssignmentIrene Moulitsas & Peter SherarCranfiel ...