vue基础02

本文介绍了如何在Vue项目中处理Vue Router版本兼容问题,以及列表渲染、固定次数重复、复合数据和嵌套渲染的基本技巧。还涵盖了列表选中操作、v-if/v-for混合使用注意事项,以及关键知识点如版本管理、组件遍历和条件渲染的最佳实践。
摘要由CSDN通过智能技术生成

vue基础02

手动安装vue-router默认安装出来的版本是4.x版本,4.x版本是为vue3.x匹配制作的,导致我们vue2.x核心的项目无法使用

 warning  in ./node_modules/vue-router/dist/vue-router.esm-bundler.js
"export 'computed' was not found in 'vue'

解决方案:重装低版本的vue-router

  npm un vue-router  //删除已经安装的
  npm i vue-router@3.x. //安装指定版本 3.x

采用构建编译的方式开发项目,经常会遇到依赖与依赖之间版本匹配的问题,特征是代码不报错,项目报错出在依赖中。解决方案是尝试更换不同的依赖版本,一般是降版本

列表渲染
  • 基本渲染 普通arr
    • item 是数组元素,命名可以是任意,底层代码是数组遍历内部函数形参
    • i 是数组元素下标
    • key 属性用于表示当前列表元素的唯一性,一般动态传入数组下标。或者元素ID
 <div class="item" v-for="(item,i) in listData" :key="i">
   {{item}}
 </div>
 <script>
   export default {
      data(){
        return {
           listData : [ "中国队进不了世界杯","中国女足没问题","中国国少还可以"],
        }
      }
   }
 </script>
  • 固定次数重复渲染
 <button v-for="i in 5" :key="i">{{i}}</button>
+ i 是从1开始
+ 5 表示重复渲染结构多少次 
  • 复合数据渲染
   <div class="item" v-for="item in prolist" :key="item.id">
   	    <h1>{{ item.id }}</h1>
   	    <p>{{ item.name }}</p>
   </div>
   
   <script>
     export default {
         data(){
           return  {
              prolist : [
                  {"id":"001","name": "网球"},
                  {"id":"002","name": "篮球"},
                  {"id":"003","name": "棒球"}
              ]
           }
         }
     }
   </script>

:key=“item.id” 原因是这次遍历没有放入下标i,因此需要从item中找一个不重复的属性来代替,一般选item.id

  • 嵌套渲染
   <div class="item" v-for="item in prolist" :key="item.id">
   	    <h1>{{ item.id }}</h1>
   	    <p>{{ item.name }}</p>
   	    <div class="comments">
   	        <span v-for="(co,i) in item.comment" :key="i">
   	           {{ co }}
   	        </span>
   	    </div>
   	    
   </div>
   
   <script>
     export default {
         data(){
           return  {
              prolist : [
                  {
                     "id":"001",
                     "name": "网球",
                     comment: ["质量好","价格低廉"]},
                  {
                      "id":"002",
                      "name": "篮球",
                      comment: ["质量好","价格低廉"]},
                  {    "id":"003",
                       "name": "棒球",
                       comment: ["质量好","价格低廉"]}
              ]
           }
         }
     }
   </script>
  • 列表选中的行操作
  • 跟v-for一同写入行间点指令,均表示每行都使用该指令
    <div @click="fn(i)" v-for="i in 5"></div>
    效果: 生成5行div,点击哪行,调用fn(行号) 
    样式操作
    <div :class="{active : index == i}" v-for="i in 5">
  • v-if 与 v-for混合使用的问题
<!-- v-if 与 v-for混合
         一般不允许 v-if 和 v-for同时写在一个标签的行间
         原因是:v-if做的DOM增删操作,v-for又是创建动作
         这个在性能上有一定冲突,可能导致运行缓慢。
         所以如果在遍历时,选择性显示 一般使用v-show来替换
         v-if
      -->
     <div class="wrap5">
          <div v-show="index == i" v-for="i in 3" :key="i">{{ i }}</div>
     </div>
     <h1 v-show="show1">show</h1>
     <h1 v-show="!show1">eles</h1>
     <button @click="show1 = !show1">dd</button>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值