Vue


状态驱动CSS

<p><strong>写法1:行内中绑定对象</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div :class=&amp;quot;{ 'class1': flag, 'class2': flag }&amp;quot;&amp;gt;Andy&amp;lt;/div&amp;gt;   &amp;lt;button @click=&amp;quot;changeStyle&amp;quot;&amp;gt;change&amp;lt;/button&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' let flag = ref(false) function changeStyle() {   flag.value = !flag.value } &amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; .class1 {   color: red; } .class2 {   font-size: 20px; } &amp;lt;/style&amp;gt;</code></pre> <hr /> <p><strong>写法2:将行内对象放在下边</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div :class=&amp;quot;obj&amp;quot;&amp;gt;Andy&amp;lt;/div&amp;gt;   &amp;lt;button @click=&amp;quot;changeStyle&amp;quot;&amp;gt;change&amp;lt;/button&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' let flag = ref(false) let obj = ref({ 'class1': flag, 'class2': flag }) function changeStyle() {   flag.value = !flag.value } &amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; .class1 {   color: red; } .class2 {   font-size: 20px; } &amp;lt;/style&amp;gt;</code></pre> <hr /> <p><strong>写法3:行内中绑定数组</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div :class=&amp;quot;['class1','class2']&amp;quot;&amp;gt;Andy&amp;lt;/div&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' &amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; .class1 {   color: red; } .class2 {   font-size: 20px; } &amp;lt;/style&amp;gt;</code></pre> <hr /> <p><strong>写法4:</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div :class=&amp;quot;[flag ? 'class1 class2' : '']&amp;quot;&amp;gt;Andy&amp;lt;/div&amp;gt;   &amp;lt;button @click=&amp;quot;changeStyle&amp;quot;&amp;gt;change&amp;lt;/button&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' let flag = ref(false) function changeStyle() {   flag.value = !flag.value } &amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; .class1 {   color: red; } .class2 {   font-size: 20px; } &amp;lt;/style&amp;gt;</code></pre> <hr /> <p><strong>写法5:</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div&amp;gt;Andy&amp;lt;/div&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' let obj = ref({   color: 'red' }) &amp;lt;/script&amp;gt; &amp;lt;style&amp;gt; div {   color: v-bind(&amp;quot;obj.color&amp;quot;) } &amp;lt;/style&amp;gt;</code></pre> <hr /> <p><strong>写法6:动态修改style</strong></p> <pre><code class="language-javascript">&amp;lt;template&amp;gt;   &amp;lt;div :style=&amp;quot;andyStyle&amp;quot;&amp;gt;Andy&amp;lt;/div&amp;gt;   &amp;lt;button @click=&amp;quot;changeStyle&amp;quot;&amp;gt;change&amp;lt;/button&amp;gt; &amp;lt;/template&amp;gt; &amp;lt;script setup&amp;gt; import { ref, computed } from 'vue' let andyStyle = ref({   width: '100px',   height: '100px',   background: 'red', }) function changeStyle() {   andyStyle.value = {     width: '100px',     height: '100px',     background: 'yellow',   } } &amp;lt;/script&amp;gt;</code></pre>

页面列表

ITEM_HTML