1. 程式人生 > >vue元件庫vant-ui和iview元件庫使用中遇到的問題小結

vue元件庫vant-ui和iview元件庫使用中遇到的問題小結

1  最近專案需要臨時做一個調查問卷頁面。考慮到效能和複雜度,決定通過使用cdn方式編寫該頁面。

效果如下:

移動端採用vant.ui

遇到的問題:

(1) 通過cdn方式進行開發的時候,引入官網的連結。檢視network會報302錯誤。

<link rel="stylesheet" href="https://unpkg.com/vant/lib/vant-css/index.css">

<script src="https://unpkg.com/vue/dist/vue.min.js"></script>

<script src="https://unpkg.com/vant/lib/vant.min.js"></script>

解決的辦法:複製該連結,下載到本地,重新連結本地地址

(2)引入連結也有講究,script標籤最好在寫在body部分dom,而不能寫在head裡。這涉及到生命週期的問題和js引擎解析順序問題。所以正確寫法如下:

<head>
 <link  href="./css/vant.css""></link>
</head>
<body>
    <div id="#app">
         <van-row>
          <van-col span="12">
             <div @click="openDateLayout">起始日期</div>
         </van-col>
          <div @click="getEndDate">起始日期</div>
          </van-row>    
    </div>


  <script src="https://cdn.bootcss.com/vue/2.5.17-beta.0/vue.min.js"></script>
  <script src="./js/vant.min.js"></script>
<script type="text/javascript">

new Vue({
  el:"#app",
  data(){
   return{
      
  }
})
</script>
</body>

(3)如果不設定viewport。會出現文字過小的問題。一定要記得設定view-port進行適配
        <meta charset="UTF-8" name="viewport" content="width=device-width,initial-scale=1">

--------------------------------------------------------------------------------------------------------------------

pc端則採用了iview的ui元件庫。其中也遇到了一些問題:

效果如下:

問題一: 通過cdn引用元件,比如

      <Row>

      <Col span="12">選擇日期</Col>

     <Col span="12"> <DatePick ></DatePick></Col>

   </Row>

這樣是沒有效果的。必須要在前面加上i。所以正確寫法:

  <i-row>
                                 <i-col span="4">結束日期</i-col>
                                 <i-col span="20"><date-picker type="date" placeholder="請選擇日期"></date-picker> </i-col>
                               </i-row>

</i-row>

 (2) 通過cdn方式引入方式開發。引入元件的時候會出現字型圖示缺失的情況。比如日期選擇器
     data-pick右上角的日期小圖示會無法顯示。
     解決辦法:通過github拷貝iview的(dist/styles/)fonts資料夾至當前專案css同級目錄即可顯示

(3)通過vue-cli方式進行開發。在傳送請求向後臺傳遞引數的時候,我們序列化引數可以通過qs這個外掛。如果是通過cdn方式進行開發。注意這裡是Qs,

示例:

<script src="https://cdn.bootcss.com/qs/6.5.2/qs.js"></script>


<script type="text/javascript">
  window.onload=function(){

  btn.onclick=function(){
        var data={
           mobile:name,
          password:pass
    } 

fetch(url+"/account/login",{
         
         method:'POST',
         headers:{
          'Content-Type': 'application/x-www-form-urlencoded'
         },
          body:Qs.stringify(data)

    }).then((res)=>{
        
       console.log("res:",res)
         return res.json()

    }).then(data=>{

     console.log("data:",data)
    }).catch(err=>{

      console.log("err:",err)

    })

}