uni-app - Class 與 Style 繫結
阿新 • • 發佈:2018-11-24
參考uni文件:https://uniapp.dcloud.io/use?id=class-%E4%B8%8E-style-%E7%BB%91%E5%AE%9A
Class類和Style通過值快速切換
uni官方和vue文件有不明之出,官方已指出
1 <template>
2 <view class ="content f f-wrap">
3
4 <image class="logo" src="../../static/image/myHover.png" @click="tap"></image>
5
6 <!--
7 前:樣式
8 後:控制:顯示/隱藏
9 -->
10
11
12 <!-- 單類 -->
13 <view :class="{ active: isActive }" >111</view>
14
15 <!-- 物件 -->
16 <view class="static" :class="{ active: isActive, 'text-danger': hasError }">222</view>
17
18 <!-- 陣列 -->
19 <view class="static" :class="[activeClass, errorClass]">333</view>
20
21 <!-- 條件 -->
22 <view class="static" v-bind:class="[isActive ? activeClass : '', errorClass]">444</view>
23
24 <!-- 陣列+物件 -->
25 <view class="static" v-bind:class="[{ activeGrey: isActive }, errorClass]">555</view>
26
27 <!-- 執行類 -->
28 <view class="container" :class="computedClassStr"></view>
29 <view class="container" :class="{activeGrey: isActive}">9999</view>
30
31
32
33 <!-- style支援的類 -->
34 <view v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">666</view>
35 <view v-bind:style="[{ color: activeColor, fontSize: fontSize + 'px' }]">777</view>
36
37 </view>
38 </template>
39
40 <script>
41
42
43
44 export default {
45 data() {
46 return {
47 title: 'Hello',
48
49 // 單啟用類
50 isActive: true,
51 hasError: true,
52
53 // 多種啟用類
54 activeClass: {
55 'active': false,
56 'text-danger': true
57 },
58 errorClass: {
59 'active': true,
60 'text-danger': false
61 },
62
63 activeColor:true,
64 fontSize:30
65 }
66 },
67 onLoad() {
68 this.fetchData()
69 console.log('頁面載入')
70 },
71 onShow() {
72 console.log('頁面顯示')
73 },
74 onReady() {
75 console.log('頁面初次顯示')
76 },
77 onHide() {
78 console.log('頁面隱藏')
79 },
80 onUnload() {
81 console.log('頁面解除安裝')
82 },
83 onBackPress() {
84 console.log('頁面返回...')
85 },
86 onShareAppMessage() {
87 console.log('分享!')
88 },
89 onReachBottom() {
90 console.log('下拉載入...')
91 },
92 onPageScroll() {
93 console.log('頁面滾動...')
94 },
95 onPullDownRefresh() {
96 console.log('上拉重新整理...')
97 uni.stopPullDownRefresh();
98 },
99
100 // #ifdef APP-PLUS
101 onNavigationBarButtonTap() {
102
103 },
104 // #endif
105
106 methods: {
107 tap(e) {
108 console.log('tap點選!', e);
109 },
110 fetchData() {
111 console.log('拉取資料...');
112 },
113 computedClassStr() {
114 return this.isActive ? 'actives' : 'active'
115 }
116 }
117 }
118 </script>
119
120 <style lang="scss">
121 .active {
122 color: #f00;
123 }
124
125 .activeGrey {
126 color: #aaa;
127 }
128
129 .text-danger {
130 color: #f0f;
131 font-weight: bold;
132 }
133
134 .f {
135 display: flex;
136 }
137
138 .f-wrap {
139 flex-wrap: wrap;
140 }
141 </style>
通過模板(template)端控制模板
通過控制端(JS)來控制行為
通過(CSS)顯示端進行顯示