【Vue】学习笔记-模板语法

前言

指令是带有’v-'前缀的特殊属性,常见的指令如下所示:
v-bind:绑定属性(简写:)
v-on:绑定事件(简写@)

条件判断指令

v-if和v-show为条件判断指令
两者的区别如下
在这里插入图片描述
运行时显示结果为:
在这里插入图片描述
v-if是不渲染dom,而v-show是渲染dom,然后将元素设置为display:none

v-show指令是通过修改元素的displayCSS属性让其显示或者隐藏
v-if指令是直接销毁和重建DOM达到让元素显示和隐藏的效果

条件判断指令具体有什么作用呢?使用条件判断常见的例子有:
网页根据用户是否登录跳转页面,源代码如下:

<template>
  <div>
    <!-- <h1 v-if="false">hello vue</h1>
    <h1 v-show="false">hello vue</h1> -->
    <p v-if="isLogin">欢迎回来</p>
    <p v-if="!isLogin"><a href="">请登录</a></p>
  </div>
</template>

<script>

export default {
  data() {
    return {
      isLogin:false
    }
  },
}
</script>

显示结果:
在这里插入图片描述

当isLogin 为true时,页面为“欢迎回来”;当isLogin 为false时,页面为“请登录”

显示列表指令

显示列表为v-for,其具体用法如下:
在(fruit,index)中fruit为水果的元素,index为集合中的索引,fruits为所有水果组成的集合,:key="index"确保列表的唯一性,绑定key的属性为index,其源代码如下:

<template>
  <div>
    <!-- <h1 v-if="false">hello vue</h1>
    <h1 v-show="false">hello vue</h1> -->
    <p v-if="isLogin">欢迎回来</p>
    <p v-if="!isLogin"><a href="">请登录</a></p>
    <ul>
      <li v-for="(fruit,index) of fruits" :key="index">
        <p>水果名称: {{fruit}}</p>
        <p>水果序号: {{index}}</p>
      </li>
    </ul>
    <table>
      <thead>
        <th>序号</th>
        <th>姓名</th>
        <th>年龄</th>
      </thead>
      <tbody>
        <tr v-for="(v,i) of students" :key="i">
          <td>{{i+1}}</td>
          <td>{{v.name}}</td>
          <td>{{v.age}}</td>
        </tr>
      </tbody>
    </table>
  </div>
</template>

<script>

export default {
  data() {
    return {
      isLogin:false,
      fruits:["香蕉","苹果","鸭梨"],
      students:[
        {name:"小明",age:11},
        {name:"小红",age:12},
        {name:"小亮",age:13},
      ]
    }
  },
}
</script>

显示结果:
在这里插入图片描述

组件嵌套

开发多应用需要很多个组件放于components,同时,将一个组件引入到App.vue中实现组件的嵌套,主要步骤如下

1.组件命名(大写字母开头驼峰命名)
2.注册组件
在这里插入图片描述

如图所示,在开发时,左侧components中新增两个组件Header.vue和MenuList.vue将两个组件分别在App.vue中引入相应的路径,并对组件进行注册,该过程为组件的嵌套。该过程使项目的开发组件化,进一步加强了代码的可读性
注意:驼峰命名法可以通过-将单词分开同时,不区分大小写,MenuList同时可以写为Menu-List,menu-List以及Menu-list
Header.vue代码:

<template>
  <h1>{{message}}</h1>
</template>

<script>
export default {
  data() {
    return {
      message:"hello header"
    }
  },
}
</script>

MenuList.vue代码:

<template>
  <div>
      <a href="">主页</a>
      <a href="">视频</a>
  </div>
</template>

App.vue代码:

<template>
  <div>
    <Header></Header>
    <menu-list></menu-list>
    <Menu-list></menu-List>
  </div>
</template>

<script>
import Header from './components/Header';
import MenuList from './components/MenuList';
export default {
  components:{
    MenuList,
    Header
  },
  data() {
    return {
    }
  },
}
</script>

常见错误与总结

在Vue框架的使用中,较为常用的模板语法可以分为以下集中情况: v-if,v-show,v-for以及嵌套组件

1)条件判断指令中,v-if渲染dom但是v-show不渲染dom,在实际的应用中,可以通过v-if来判断某个值或者页面是否显示,如果为true则显示成功跳转的页面,如果v-if为false则可以跳转到重新启动的页面

2)v-for可以用来显示列表语法中(fruit,index) of fruits中代表(集合元素,集合索引)of 集合名, 绑定:key="index"来确保列表的唯一性,在编程需要注意的错误如下:

在这里插入图片描述
在这里插入图片描述
当返回多个数值时,需要在不同的集合之间通过",“的形式隔开如图所示应该在水果集合的[]后面添加”,"

3)嵌套组件 在实际的开发应用中需要在components中创建多个组件,同时将多个组件通过注册组件的方式在App.vue中呈现,在编程中“./”表示当前所在的目录,“…/”表示父级目录,如下错误所示
在这里插入图片描述
在这里插入图片描述
components和App.vue处于同一级目录,地址应该写为“./”而不是“…/”

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 中的 `ie chunk-vendors 语法错误` 错误通常是由于在 IE 浏览器中加载 Vue 项目时引发的,原因是 IE 浏览器对一些 ES6 的语法特性不支持。为了解决这个问题,你可以尝试以下几种方法: 1. 在 `babel.config.js` 文件中配置 `@babel/preset-env` 插件,将其设置为兼容 IE 的配置。在 preset-env 的 targets 选项中指定兼容的浏览器版本,例如:`targets: { ie: 11 }`。这样 Babel 会自动将 ES6 语法转换为兼容 IE 浏览器的 ES5 语法。 2. 检查你的项目依赖和插件是否有兼容性问题。有些第三方库或插件可能使用了不被 IE 支持的语法特性,因此你需要检查这些依赖并查找替代方案或修改代码以使其兼容。 3. 使用 polyfill(垫片)填充缺失的功能。Vue 提供了 `@babel/preset-env` 配置中的 `useBuiltIns` 选项,可以根据你的需要自动导入所需的 polyfill。在 `babel.config.js` 文件中配置:`"useBuiltIns": "usage"`,这样 Babel 会根据你代码中使用的 ES6 语法特性自动导入所需的 polyfill。 4. 如果你使用的是 Vue CLI 创建的项目,在 `vue.config.js` 文件中可以添加如下配置: ```javascript module.exports = { transpileDependencies: ['vue'], } ``` 这将将 Vue 的源代码转译为 ES5 语法,以确保兼容 IE 浏览器。 总之,要解决 `ie chunk-vendors 语法错误` 错误,你需要配置 Babel 来处理 IE 不支持的语法,检查项目依赖和插件兼容性,使用 polyfill 填充缺失的功能,并可能进行其他相关配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值