自然萌 發表於 2019-7-18 15:34:00

uni-app v-for循环遍历 动态切换class、动态切换style

<p><img src="https://img2018.cnblogs.com/blog/867078/201907/867078-20190718153134636-938370008.png"></p>
<p><span style="color: rgba(255, 0, 0, 1)">&nbsp;动态切换class,主要代码:<strong>:class="i.themColor"&nbsp;</strong></span></p>
<div class="cnblogs_code">
<pre>&lt;viewv-<span style="color: rgba(0, 0, 255, 1)">for</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">i in htmlJSON</span><span style="color: rgba(128, 0, 0, 1)">"</span> <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">column</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">i.themColor</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
    &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">uni-flex uni-column line</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
      &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">flex-item flex-item-V uni-bg-red</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
            &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">flex-item left</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;{{i.title}}&lt;/view&gt;
                &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">txt</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;{{i.txt}}&lt;/view&gt;
            &lt;/view&gt;
      &lt;/view&gt;
    &lt;/view&gt;
&lt;/view&gt;


&lt;script&gt;<span style="color: rgba(0, 0, 0, 1)">
    import common </span><span style="color: rgba(0, 0, 255, 1)">from</span> <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">../../common/common.js</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
    export </span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
      data() {
            </span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> {
                htmlJSON:common.kdtHomeHtmlJSON
            }
      },
      methods: {
      },
      mounted() {
      }
    }
</span>&lt;/script&gt;

&lt;style lang=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">scss</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> body</span>
<span style="color: rgba(0, 0, 0, 1)">    .content{
      width: 750upx;
      height: 634upx;
    }
   
    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 内容:</span>
<span style="color: rgba(0, 0, 0, 1)">    .colorA268D4{
      background:#A268D4 url(..</span>/../<span style="color: rgba(0, 0, 255, 1)">static</span>/images/kdt/icon-test.png) no-<span style="color: rgba(0, 0, 0, 1)">repeat530upx 45upx;
      background</span>-<span style="color: rgba(0, 0, 0, 1)">size: 125upx;
    }
    .colorFA5E8A{
      background:#FA5E8A url(..</span>/../<span style="color: rgba(0, 0, 255, 1)">static</span>/images/kdt/icon-.png) no-<span style="color: rgba(0, 0, 0, 1)">repeat530upx 45upx;
      background</span>-<span style="color: rgba(0, 0, 0, 1)">size: 125upx;
    }
    .color58C4CC{
      background:#58C4CC url(..</span>/../<span style="color: rgba(0, 0, 255, 1)">static</span>/images/kdt/icon-curriculum.png) no-<span style="color: rgba(0, 0, 0, 1)">repeat530upx 45upx;
      background</span>-<span style="color: rgba(0, 0, 0, 1)">size: 125upx;
    }
    .color7E8FEF{
      background:#7E8FEF url(..</span>/../<span style="color: rgba(0, 0, 255, 1)">static</span>/images/kdt/icon-family.png) no-<span style="color: rgba(0, 0, 0, 1)">repeat530upx 45upx;
      background</span>-<span style="color: rgba(0, 0, 0, 1)">size: 125upx;
    }
    .column {
      width: 702upx;
      height: 182upx;
      margin:17upxauto;
      padding</span>-<span style="color: rgba(0, 0, 0, 1)">left: 25upx;
      padding</span>-<span style="color: rgba(0, 0, 0, 1)">top: 35upx;
      line</span>-<span style="color: rgba(0, 0, 0, 1)">height: 42upx;
      letter</span>-<span style="color: rgba(0, 0, 0, 1)">spacing: 4upx;
      border</span>-<span style="color: rgba(0, 0, 0, 1)">radius: 10upx;
      .title{
            color: #ffffff;
            font</span>-<span style="color: rgba(0, 0, 0, 1)">size: 31upx;
      }
      .txt{
            width: 426upx;
            font</span>-<span style="color: rgba(0, 0, 0, 1)">size: 25upx;
            color: #E6E6E6
      }
    }
   
</span>&lt;/style&gt;

<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">commom.js</span>
export <span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
    kdtHomeHtmlJSON:[{
      title:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">体测数据录入</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      txt:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">体测数据现场“录入+上传”,一步到位!</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      themColor:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">colorA268D4</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    },
    {
      title:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">入园师训</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      txt:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">提高幼师对于体育与运动领域基本知识,基本技能,实践操作能力</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      themColor:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">colorFA5E8A</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    },
    {
      title:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">体能课程</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      txt:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">提升幼师对于体育与运动领域基本知识,基本技能,实践操作能力</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      themColor:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">color58C4CC</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    },
    {
      title:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">家长工作</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      txt:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">确保每位家长都能收到孩子的体能成果</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">,
      themColor:</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">color7E8FEF</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
    }]
}</span></pre>
</div>
<p>&nbsp;<img src="https://img2018.cnblogs.com/blog/867078/201907/867078-20190718153146741-1492747743.png"></p>
<p><span style="color: rgba(255, 0, 0, 1)">&nbsp;动态切换style,主要代码:<strong>&nbsp;:style="{'background':</strong><strong>item.TypeColor}"</strong></span></p>
<div class="cnblogs_code">
<pre>&lt;!-- 体测 --&gt;
      &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">block</span><span style="color: rgba(128, 0, 0, 1)">"</span>v-<span style="color: rgba(0, 0, 255, 1)">for</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">itemList in list</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
            &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">title-word</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 0, 0, 1)">
                  {{itemList[</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">].TypeName}}
                </span>&lt;/view&gt;
            &lt;/view&gt;
            &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-<span style="color: rgba(0, 0, 255, 1)">for</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">(item,index) in itemList</span><span style="color: rgba(128, 0, 0, 1)">"</span> :key=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">index</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                &lt;!-- 日历选择器 --&gt;
                &lt;picker mode=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">date</span><span style="color: rgba(128, 0, 0, 1)">"</span> :value=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">item.BookTime</span><span style="color: rgba(128, 0, 0, 1)">"</span>@change=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">bindDateChange($event,item)</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                  &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">book left</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-<span style="color: rgba(0, 0, 255, 1)">if</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">!item.BookTime</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                        &lt;image src=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">../../static/images/icon-calendar.png</span><span style="color: rgba(128, 0, 0, 1)">"</span> mode=<span style="color: rgba(128, 0, 0, 1)">""</span>&gt;&lt;/image&gt;
                        &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">text</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 0, 0, 1)">
                            预约
                        </span>&lt;/view&gt;
                  &lt;/view&gt;
                  &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">booked left</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-<span style="color: rgba(0, 0, 255, 1)">else</span>&gt;
                        &lt;text&gt;{{item.BookTimeTxt}}&lt;/text&gt;
                        &lt;image src=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">../../static/images/icon-calendar.png</span><span style="color: rgba(128, 0, 0, 1)">"</span> mode=<span style="color: rgba(128, 0, 0, 1)">""</span>&gt;&lt;/image&gt;
                  &lt;/view&gt;
                &lt;/picker&gt;
                &lt;!-- 分割西线 --&gt;
                &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">break left</span><span style="color: rgba(128, 0, 0, 1)">"</span> &gt;
                  &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">break-line-pe left</span><span style="color: rgba(128, 0, 0, 1)">"</span> :style=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{'background': item.TypeColor}</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/view&gt;
                &lt;/view&gt;
                &lt;!-- 题目 --&gt;
                &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">message-pe left</span><span style="color: rgba(128, 0, 0, 1)">"</span> :style=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{'background': item.TypeColor}</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
                  &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">message-info nowrap</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(0, 0, 0, 1)">
                        {{item.Name}}
                  </span>&lt;/view&gt;
                &lt;/view&gt;
            &lt;/view&gt;
            &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">box</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/view&gt;
      &lt;/view&gt;

&lt;script&gt;
<span style="color: rgba(0, 0, 255, 1)">this</span>.list=<span style="color: rgba(0, 0, 0, 1)">{
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">:[
      {
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Id</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">1657</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">CreateTime</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">2019-01-26T15:05:40.5970000</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ServiceUnitId</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">2004</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ServiceMetadataId</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">5</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">LikedCount</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Type</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">2</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Status</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">ContentId</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 128, 1)">81</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Name</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">森林运动会</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TypeName</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">课程</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">,
            </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">TypeColor</span><span style="color: rgba(128, 0, 0, 1)">"</span>:<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">#68CDD4</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">
      },
      Object{...},
      Object{...},
      Object{...}
    ],
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">3</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">:[
      Object{...},
      Object{...}
    ],
    </span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">4</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">:[
      Object{...},
      Object{...}
    ]
}
</span>&lt;script&gt;</pre>
</div>
<p>&nbsp;</p>
<p>说明:为节约性能,将 Class 与 Style 的表达式通过 compiler 硬编码到 uni-app 中,支持语法和转换效果如下:</p>
<h3>class 支持的语法:</h3>
<div class="cnblogs_code">
<pre>&lt;view :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{ active: isActive }</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">111</span>&lt;/view&gt;
&lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">static</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-bind:<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{ active: isActive, 'text-danger': hasError }</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">222</span>&lt;/<span style="color: rgba(0, 0, 0, 1)">view
</span>&lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">static</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"></span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">333</span>&lt;/view&gt;
&lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">static</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-bind:<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"></span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">444</span>&lt;/view&gt;
&lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">static</span><span style="color: rgba(128, 0, 0, 1)">"</span> v-bind:<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">[{ active: isActive }, errorClass]</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">555</span>&lt;/view&gt;</pre>
</div>
<p></p>
<h3>style 支持的语法:</h3>
<div class="cnblogs_code">
<pre>&lt;view v-bind:style=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{ color: activeColor, fontSize: fontSize + 'px' }</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">666</span>&lt;/view&gt;
&lt;view v-bind:style=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">[{ color: activeColor, fontSize: fontSize + 'px' }]</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;<span style="color: rgba(128, 0, 128, 1)">777</span>&lt;/view&gt;</pre>
</div>
<h3>不支持 Vue官方文档:Class 与 Style 绑定 中的 classObject 和 styleObject 语法。</h3>
<p>此外还可以用 computed 方法生成 class 或者 style 字符串,插入到页面中,举例说明:</p>
<div class="cnblogs_code">
<pre>&lt;template&gt;
    &lt;!-- 支持 --&gt;
    &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">container</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">computedClassStr</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/view&gt;
    &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">container</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">{active: isActive}</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/view&gt;
    &lt;!-- 不支持 --&gt;
    &lt;view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">container</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">computedClassObject</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;&lt;/view&gt;
&lt;/template&gt;</pre>
</div>
<h3>动态菜单切换示例</h3>
<div class="cnblogs_code">
<pre>&lt;template&gt;
&lt;scroll-view <span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">menus</span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;
&lt;view v-<span style="color: rgba(0, 0, 255, 1)">for</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">(menu, index) in menus</span><span style="color: rgba(128, 0, 0, 1)">"</span> :<span style="color: rgba(0, 0, 255, 1)">class</span>=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)"></span><span style="color: rgba(128, 0, 0, 1)">"</span>&gt;{{menu}}&lt;/view&gt;
&lt;/scroll-view&gt;
&lt;/template&gt;

&lt;script&gt;<span style="color: rgba(0, 0, 0, 1)">
export </span><span style="color: rgba(0, 0, 255, 1)">default</span><span style="color: rgba(0, 0, 0, 1)"> {
data: {
currentIndex : </span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">,
menus : [
   </span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">新闻</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">汽车</span><span style="color: rgba(128, 0, 0, 1)">'</span>, <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">读书</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">
]
},
onLoad:function(options){
console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">onLoad</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
},
onHide:function(){
console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">onHide</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
},
onShow:function(){
console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">onShow</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
}
}
</span>&lt;/script&gt;

&lt;style&gt;<span style="color: rgba(0, 0, 0, 1)">
.menus{width:700px; margin:</span><span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)"> auto; padding:20px 0px;}
.menus view{padding:8px; line</span>-height:20px; font:38px; <span style="color: rgba(0, 0, 255, 1)">float</span><span style="color: rgba(0, 0, 0, 1)">:left;}
.menuActive{color:#</span><span style="color: rgba(128, 0, 128, 1)">900</span><span style="color: rgba(0, 0, 0, 1)">;}
</span>&lt;/style&gt;</pre>
</div>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/-mrl/p/11207694.html
頁: [1]
查看完整版本: uni-app v-for循环遍历 动态切换class、动态切换style