<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                # 小知識1 ## 一、常見的菜單列表 ![](https://oscimg.oschina.net/oscnet/aa37d1de2d854c7cc6e7f3c32986b533434.jpg) 我們以一個菜單的案例展開,先來看一個平常程序員怎么常規的vue文件如何寫? 以element-ui為基礎組件的部分代碼 ``` <el-row :span="24"> <el-col span="8" @click="event1"> <i class="icon-caidan1" :style="{backgroundColor:color1}"></i> <p>菜單1</p> </el-col> <el-col span="8" @click="event2"> <i class="icon-caidan2" :style="{backgroundColor:color2}"></i> <p>菜單2</p> </el-col> <el-col span="8" @click="event3"> <i class="icon-caidan3" :style="{backgroundColor:color3}"></i> <p>菜單3</p> </el-col> <el-col span="8" @click="event4"> <i class="icon-caidan4" :style="{backgroundColor:color4}"></i> <p>菜單4</p> </el-col> </el-row> ``` 這就是大多數人們寫的代碼,有著大量的重復代碼,而且難以高效的維護,如果讓再加10個菜單,他就會ctrl+c/ctrl+v復制10個出來,代碼量特別的大 ## 二、數據驅動視圖 >(數據+模版=視圖) 我們分析代碼發現有很多重復的部分,無疑是改變了幾個關鍵的信息 - 圖標 - 標題 - 背景色 - 點擊事件 - 其他參數 我們把上述的參數具體為了一個對象數組,也就是我們說的(數據層) ``` [ { title:'菜單1', icon:'icon-caidan1', event:'event1, style:{ backgroundColor:'color1' color:'color1' } } ... ] ``` 我們想想如果用循環的方式遍歷這個數組對象,把相關的關鍵內容填充到相應的位置,換言之就是插入到我們的卡槽中,我們接下來構建我們的卡槽(模版層) ``` <el-row :span="24" v-for="(item,index) in list" :key="index"> <el-col span="8" @click="goLink(item)"> <i :class="item.icon" :style=loadStyle(item)></i> <p v-text="item.title"></p> </el-col> </el-row> ``` 接下來我們寫goLink和loadStyle,邏輯寫起來比較簡單 ``` ... event1(item){ //每一個菜單對應的事件邏輯 }, ... goLink(item){ this[item.event](item); }, loadStyle(item){ const style = item.style; return style } ``` - list就是我們前面構建的數組對象 - goLink我們點擊事件的處理方法,并將item當前數據對象傳入方法 - loadStyle我們樣式加載處理方法 接下來我們將數據和模版組合到一起就呈現我們看到的視圖了,從而達到了數據驅動視圖的質量高、維護性高的優點 再接著我們上面的老板的需求,讓我們加10個20個都不用去寫重復代碼,只要在數據數組中配置好要加的東西即可 ## 番外 在js里面,經常需要使用js往頁面中插入html內容。 比如這樣: ``` var number = 123; $('#d').append('<div class="t">'+number+'</div>'); ``` - 如果html很短還好說,但是遇到描述里面的這么大段,直接用字符串存儲會很困難,因為不光要處理單引號,還需要很多「+」號把字符串一個個連接起來,十分的不方便。 - 給script設置type="text/template",標簽里面的內容不會被執行,也不會顯示在頁面上,但是可以在另一個script里面通過獲取插入到頁面中。這樣就把大段的HTML操作從js里面分離開了。 ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="user_info"></div> </body> <script type="text/tmplate" id="tmplate"> <div> <ul> <li>姓名:{{name}}</li> <li>年齡:{{age}}</li> <li>電話:{{phone}}</li> </ul> </div> </script> <script type="application/javascript"> //實例參數 var user = { name: "陳立明", age: 23, phone: "15932582632"}; //模板 var template = document.getElementById("tmplate").innerHTML; //使用mustache.js進行模板解析填充數據 var view = template.replace('{{name}}',user.name) view = view.replace('{{age}}',user.age) view = view.replace('{{phone}}',user.phone) document.getElementById("user_info").innerHTML = view; </script> </html> ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看