VUE-03 数据响应


一、基本数据类型

 1 DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Titletitle>
 6 head>
 7 <body>
 8     <div id="app">
 9       
10       
11       {{msg}}
12 
13       
14       <div v-text="msg">div>
15 
16       
17       <div v-once>
18         {{msg}}
19         <h2>{{msg}}h2>
20       div>
21 
22       
24       <div v-html="p">div>
25 
26     div>
27     
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:'

html段落

' 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   
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   
 9   
10   <div id="app">
11     
12     <ul>
13       
14       
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>

H5