Vue 样式绑定 && 条件渲染

 

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8" />
  5         <title>Vue 样式绑定</title>
  6         <style>
  7             .basic{
  8                 width: 400px;
  9                 height: 100px;
 10                 border: 1px solid black;
 11             }
 12             .happy{
 13                 border: 4px solid red;
 14                 background-color: rgba(255, 255, 0, 0.644);
 15                 background: linear-gradient(30deg, yellow, pink, orange, yellow);
 16             }
 17             .sad{
 18                 border: 4px dashed rgb(2, 197, 2);
 19                 background-color: gray;
 20             }
 21             .normal{
 22                 background-color: skyblue;
 23             }
 24             .div1{
 25                 background-color: yellowgreen;
 26             }
 27             .div2{
 28                 font-size: 30px;
 29                 text-shadow: 2px 2px 10px red;
 30             }
 31             .div3{
 32                 border-radius: 20px;
 33             }
 34         </style>
 35         <script type="text/javascript" src="../js/vue.js"></script>
 36     </head>
 37     <body>
 38         <!-- 
 39             绑定样式:
 40                 1.class样式
 41                     写法:class="xxx" xxx可以是字符串、对象、数组
 42                         字符串写法适用于 雷鸣不确定,要动态获取
 43                         对象写法适用于:要绑定多个样式,个数不确定,名字也不确定
 44                         数组写法使用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用
 45                 2.style样式
 46                     :style="fontSize: xxx" 其中xxx是动态值
 47                     :style="[a, b]"其中a、b是样式对象
 48 
 49          -->
 50         <div id="root">
 51             <!-- 绑定class样式--字符串写法,适用于:样式的类名不确定,需要动态指定 -->
 52             <div class="basic" :class="mood" @click="changeMood">{{name}}</div> <br/> <br/>
 53 
 54             <!-- 绑定class样式--数组写法,适用于:要绑定的样式个数不确定、名字也不确定 -->
 55             <div class="basic" :class="classArr">{{name}}</div> <br/> <br/>
 56 
 57             <!-- 绑定class样式,对象写法,适用于:要绑定的样式个数、名字确定,但要动态决定启不启用它 -->
 58             <div class="basic" :class="classObj">{{name}}</div> <br/> <br/>
 59 
 60             <!-- 绑定style样式-对象写法 -->
 61             <div class="basic" :style="styleObj">{{name}}</div> <br/> <br/>
 62 
 63             <!-- 绑定style样式-数组写法 -->
 64             <div class="basic" :style="styleArr">{{name}}</div> <br/> <br/>
 65         </div>
 66     </body>
 67 
 68     <script type="text/javascript" >
 69         Vue.config.productionTip = false;//     阻止 vue 在启动时生成生产提示。
 70         let vm = new Vue({
 71             el: '#root',
 72             data:{
 73                 name: 'BaiYeShu',
 74                 mood: 'normal',
 75                 classArr: ['div1', 'div2', 'div3'],
 76                 classObj:{
 77                     div1: true,
 78                     div2: true,
 79                     div3: true
 80                 },
 81                 styleObj:{
 82                     color: "red",
 83                     fontSize: "40px",
 84                     backgroundColor: 'orange'
 85                 },
 86                 styleArr:[
 87                     {
 88                         color: "red",
 89                         fontSize: "40px",
 90                     },
 91                     {
 92                         backgroundColor: 'orange'
 93                     }
 94                 ]
 95             },
 96             methods:{
 97                 changeMood(e){
 98                     const arr = ['happy', 'sad', 'normal'];
 99                     const index = Math.floor(Math.random()*3);
100                     this.mood = arr[index];
101                 }
102             }
103         });
104     </script>
105 </html>

 

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8" />
 5         <title>Vue 条件渲染</title>
 6         <script type="text/javascript" src="../js/vue.js"></script>
 7     </head>
 8     <body>
 9         <!-- 
10             条件渲染:
11                 1.v-if
12                     写法:
13                         .   v-if="表达式"
14                         .   v-else-if="表达式"
15                         .   v-else
16                     适用于:切换平率较低的场景
17                     特点:不展示的DOM元素直接被移除
18                     注意:v-if可以和:v-else-if、v-else一起使用。但要求结构不能被“打断”。
19                 2.v-show
20                     写法:v-show="表达式"
21                     适用于:切换频率较高的场景
22                     特点:不展示的DOM元素未被移除,仅仅是使用样式隐藏掉
23                 3.备注:使用v-if的时候,元素可以无法获取到,而使用v-show一定可以获取到。
24          -->
25         <div id="root">
26             <h2>当前n的值是:{{n}}</h2>
27             <button @click="n++">点我n+1</button>
28             <!-- 使用v-show做条件渲染 -->
29             <!-- <h2 v-show="false">欢迎来到{{name}}!</h2>
30             <h2 v-show="1 === 1">欢迎来到{{name}}!</h2> -->
31 
32             <!-- 使用v-if做条件渲染 -->
33             <!-- <h2 v-if="false">欢迎来到{{name}}!</h2>
34             <h2 v-if="1 === 1">欢迎来到{{name}}!</h2> -->
35 
36             <!-- 使用v-else和v-else-if做渲染 -->
37             <div v-if="n === 1">Angular</div>
38             <div v-else-if="n === 2">React</div>
39             <div v-else-if="n === 3">Vue</div>
40             <div v-else>哈哈</div>
41 
42             <!-- v-if与temolate配合使用 -->
43             <template v-if="n === 1">
44                 <h2>hello</h2>
45                 <h2>{{name}}</h2>
46                 <h2>BeiJing</h2>
47             </template>
48         </div>
49     </body>
50 
51     <script type="text/javascript" >
52         Vue.config.productionTip = false;//     阻止 vue 在启动时生成生产提示。
53         let vm = new Vue({
54             el: '#root',
55             data:{
56                 name: 'BaiYeShu',
57                 n: 0
58             },
59         });
60     </script>
61 </html>

 

posted @ 2022-05-24 15:47  看一百次夜空里的深蓝  阅读(113)  评论(0编辑  收藏  举报