• VUE-03 数据响应


    一、基本数据类型

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8     <div id="app">
     9       <!--页面从上向下加载,会闪现{{msg}}-->
    10       <!--script要放到最后,不影响dom渲染-->
    11       {{msg}}
    12 
    13       <!--用 v-text === {{}} 防止{{}}出现在页面上-->
    14       <div v-text="msg"></div>
    15 
    16       <!--v-once 只绑定一次 当数据发生变化时 也不导致页面刷新-->
    17       <div v-once>
    18         {{msg}}
    19         <h2>{{msg}}</h2>
    20       </div>
    21 
    22       <!--v-html 把html字符串当做html渲染,在网站上动态渲染任意 HTML 是非常危险的,
    23       因为容易导致 XSS 攻击。只在可信内容上使用 v-html,永不用在用户提交的内容上-->
    24       <div v-html="p"></div>
    25 
    26     </div>
    27     <!--引入vue.js-->
    28     <script src="./node_modules/vue/dist/vue.js"></script>
    29     <script>
    30       let vm = new Vue({
    31         el:'#app',
    32         data:{
    33           msg:'hello,world!',
    34           p:'<h1>html段落</h1>'
    35         }
    36 
    37       });
    38 
    39     </script>
    40 </body>
    41 </html>

    二、对象{}

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4   <meta charset="UTF-8">
     5   <title>对象{}</title>
     6 </head>
     7 <body>
     8 <div id="app">
     9   <!--复杂数据 对象、数组、function-->
    10   {{a.school}}
    11   {{a.age}}
    12 </div>
    13 
    14 <script src="./node_modules/vue/dist/vue.js"></script>
    15 <script>
    16   // vue 会循环data中的数据(数据劫持) 依次的增加getter和setter 实现数据的响应变化
    17   let vm = new Vue({
    18     el:'#app',
    19     data:{
    20       a:{school:''}  // 1、使用变量时先初始化,否则新加载的属性不会导致页面刷新
    21     }
    22 
    23   });
    24   // 2、此方法可以给对象添加属性,发生响应式的变化
    25   vm.$set(vm.a,'age',1);
    26   // 3、替换原对象
    27   vm.a = {name:'高考',age:18,school:'一中'}
    28 
    29 </script>
    30 </body>
    31 </html>

    三、数组[] 

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>数组[]</title>
     6 </head>
     7 <body>
     8     <div id="app">
     9       {{arr}}
    10       {{arr[1]}}
    11     </div>
    12 
    13     <script src="./node_modules/vue/dist/vue.js"></script>
    14     <script>
    15       let vm = new Vue({
    16         el:'#app',
    17         data:{
    18           arr:[1,2,3,4,5]
    19         }
    20 
    21       });
    22       // 去改变数组中的某一项是监控不到的,也不能适用改变数组长度的方法
    23       // 错误:vm.arr[0] = 100; vm.arr.length -= 2;
    24       // 变异方法:pop push shift unshift sort reverse splice 改变数组
    25       vm.arr.reverse();
    26       // 赋予新值
    27       vm.arr = vm.arr.map(item => item*=3);
    28     </script>
    29 </body>
    30 </html>

     循环 v-for

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>数组的循环</title>
     6 </head>
     7 <body>
     8   <!--以前:拼字符串innerHtml 重复渲染,操作Dom效率低-->
     9   <!--v-for 解决循环问题,更高效,会复原原有结构-->
    10   <div id="app">
    11     <!--要循环谁加载谁上面-->
    12     <ul>
    13       <!--默认是value of 数组 / (value,index) of 数组  of/in 都可以 一般in-->
    14       <!--<li v-for="(fruit,index) in fruits">{{fruit.name}}{{index}}</li>-->
    15       <li v-for="(fruit,index) in fruits">{{index+1}}.{{fruit.name}}
    16         <ul>
    17           <li v- v-for="c,i in fruit.color">{{index+1}}.{{i+1}}{{c}}</li>
    18         </ul>
    19       </li>
    20     </ul>
    21   <!--也可以循环字符串,数字,对象-->
    22     <div v-for="l in 'abc'">{{l}}</div>
    23     <div v-for="n in 10">{{n}}</div>
    24     <div v-for="v,k,i in obj">{{i}}:{{k}}:{{v}}</div>
    25   </div>
    26 
    27   <script src="./node_modules/vue/dist/vue.js"></script>
    28   <script>
    29     let vm =new Vue({
    30       el:'#app',
    31       data:{
    32         obj:{name:'小明',age:10},
    33         fruits:[
    34           {name:'香蕉',color:['yellow']},
    35           {name:'苹果',color:['red','green','pink']},
    36           {name:'葡萄',color:['purple','green']}
    37         ]
    38       }
    39     })
    40 
    41   </script>
    42 </body>
    43 </html>

  • 相关阅读:
    关于FileUpload控件的二种用法,你都懂吗?
    Application全局对象 实现统计当前在线人数和总访问次数
    使用COOKIE对像实现保存用户基本信息(结合Session),ASP.Net实现用户登录全过程
    递规篇历路径之 使用正则过滤( 将符合正则的名称用另种正则格式替换掉 )某个路径下的所有文件或文件夹的完整路径
    小偷程序之网页分块筛选
    c#中的socket编程基础
    ASP.Net中的一些基础家常事
    PHP数组
    Effective C++总结
    构造函数、析构函数、虚函数可否内联,有何意义
  • 原文地址:https://www.cnblogs.com/onroad2019/p/13267501.html
Copyright © 2020-2023  润新知