美文网首页
Vue系列(二):Vue基础语法

Vue系列(二):Vue基础语法

作者: songstar | 来源:发表于2020-06-15 20:44 被阅读0次

Vue基础语法

内容概述

  • 插值操作
  • 绑定属性
  • 计算属性
  • 事件监听
  • 条件判断
  • 循环遍历
  • 阶段案例
  • v-model

一. 插值语法

1.1.Vue的template

  • 代码规范
    平常我个人习惯是缩进四个空格,但是大型的框架(比如Vue)大多是缩进两个空格,我们尽量习惯缩进两个空格。
  • Webstorm抽离模板
    选择文件-->设置--->code style--->代码模块-->选择Vue,复制你要抽离的代码,点击应用,再点击确定,就ok了,so easy!
    代码抽离步骤.png
  • Mustache
    如何将data中的文本数据,插入到HTML中呢?
    可以通过Mustache语法(也就是双大括号),并且数据是响应式的。
    Mustache: 胡子/胡须.
    {{}}就是 Mustache 的标示符,花括号里的 data 表示键名,这句的作用是直接输出与键名匹配的键值
    Mustach不仅仅可以直接写变量,也可以写简单的表达式,Mustach的使用如下
  <div id="app">
    <div>{{message}}</div>
    <div>{{message}},sunshine</div>
    <div>{{firstName + lastName}}</div>
    <div>{{firstName + " " + lastName}}</div>
    <div>{{firstName}} {{lastName}}</div>
    <div>{{firstName + lastName}}</div>
  </div>

    <!--  引入Vue-->
  <script src="../../Vuejs/vue.js"></script>

  <script>
    const app = new Vue({
        el: "#app",
        data: {
          message: "你好啊",
          firstName: "sun",
          lastName: "shine",
          counter: 0
        }
      })
    </script>
  • v-once指令的使用
    该指令后面不需要跟任何表达式(比如之前的v-for后面是由跟表达式的)
    并且被定义了 v-once 指令的元素或组件(包括元素或组件内的所有子孙节点)只能被渲染一次。首次渲染后,即使数据发生变化,也不会被重新渲染。一般用于静态内容展示。

    v-once指令的使用.png
  • v-html指令的使用
    某些情况下,我们从服务器请求到的数据本身就是一个HTML代码,如果我们直接通过{{}}来输出,会将HTML代码也一起输出。
    但是我们可能希望的是按照HTML格式进行解析,并且显示对应的内容。
    如果我们希望解析出HTML展示就可以使用v-html指令,该指令后面往往会跟上一个string类型,会将string的html解析出来并且进行渲染

    v-html指令.png
  • v-text指令的使用
    v-text作用和Mustache比较相似:都是用于将数据显示在界面中
    v-text通常情况下,接受一个string类型,比如下图,使用v-text后,div中的文本没有渲染。

    v-text指令.png
  • v-pre指令的使用
    v-pre用于跳过这个元素和它子元素的编译过程,用于显示原本的Mustache语法。
    比如下面的代码:
    第一个h2元素中的内容会被编译解析出来对应的内容
    第二个h2元素中会直接显示{{message}}

    v-pre指令.png
  • v-block指令的使用
    在某些情况下,我们浏览器可能会直接显然出未编译的Mustache标签,这样对用户的体验十分不好,通过v-cloak可以在未加载Vue的时候让Mustache标签不显示。
    cloak: 斗篷

    v-cloak指令.png

二. 绑定属性

2.1. v-bind的介绍

  • 前面我们学习的指令主要作用是将值插入到我们模板的内容当中。但是,除了内容需要动态来决定外,某些属性我们也希望动态来绑定。
  • 比如动态绑定a元素的href属性
  • 比如动态绑定img元素的src属性
  • 这个时候,我们可以使用v-bind指令:
    作用:动态绑定属性
    简写::
    预期:any (with argument) | Object (without argument)
    参数:attrOrProp (optional)

2.2.v-bind的基础

  • v-bind用于绑定一个或多个属性值,或者向另一个组件传递props值(这个到组件时再介绍)
  • 在开发中,有哪些属性需要动态进行绑定呢?
    比如图片的链接src、网站的链接href、动态绑定一些类、样式等等
    比如通过Vue实例中的data绑定元素的src和href,代码如下:
<div id="app">
      <div>{{message}}</div>
      <img v-bind:src="imgUrl" alt="">
      <a v-bind:href="link">百度</a>
    </div>

    <!--  引入Vue-->
    <script src="../../Vuejs/vue.js"></script>

    <script>
      const app = new Vue({
        el: "#app",
        data: {
          message: "你好啊",
          imgUrl: 'https://img11.360buyimg.com/mobilecms/s350x250_jfs/t1/20559/1/1424/73138/5c125595E3cbaa3c8/74fc2f84e53a9c23.jpg!q90!cc_350x250.webp',
          link: "https://www.baidu.com"
        }
      })
    </script>

2.3.v-bind语法糖

  • v-bind有一个对应的语法糖,也就是简写方式
  • 在开发中,我们通常会使用语法糖的形式,因为这样更加简洁。
  • 简写方式如下:


    v-bind语法糖.png

2.4.绑定class

  • 很多时候,我们希望动态的来切换class,比如:
    当数据为某个状态时,字体显示红色。
    当数据另一个状态时,字体显示黑色。
    *绑定class有两种方式:
  • 对象语法
    对象语法的含义是:class后面跟的是一个对象。
  • 用法一:直接通过{}绑定一个类
<h2 :class="{active: isActive}">Hello World</h2>
  • 用法二:也可以通过判断,传入多个值
<h2 :class="{active: isActive, 'line': isLine}">Hello World</h2>
  • 用法三:和普通的类同时存在,并不冲突
    注:如果isActive和isLine都为true,那么会有title/active/line三个类
<h2 class="title" :class="{active: isActive, line: isLine}">Hello World</h2>
  • 用法四:如果过于复杂,可以放在一个methods或者computed中
    注:classes是一个计算属性
<h2 class="title" :class="classes">Hello World</h2>
  • 数组语法
    数组语法的含义是:class后面跟的是一个数组。
  • 用法一:直接通过{}绑定一个类。注意:
<h2 :class="[active]">Hello World</h2>
  • 用法二:也可以传入多个值
<h2 :class=“[active, line]">Hello World</h2>
  • 用法三:和普通的类同时存在,并不冲突
    注:会有title/active/line三个类
<h2 class="title" :class=“[active, line]">Hello World</h2>
  • 用法四:如果过于复杂,可以放在一个methods或者computed中
    注:classes是一个计算属性
<h2 class="title" :class="classes">Hello World</h2>

2.5.绑定style样式

  • 我们可以利用v-bind:style来绑定一些CSS内联样式。
  • 在写CSS属性名的时候,比如font-size
    我们可以使用驼峰式 (camelCase) fontSize 或短横线分隔 (kebab-case,记得用单引号括起来) ‘font-size’
  • 绑定class有两种方式:
  • 对象语法
<div v-bind:style="{color: currentColor, fontSize: fontSize + 'px'}"></div>

style后面跟的是一个对象类型
对象的key是CSS属性名称
对象的value是具体赋的值,值可以来自于data中的属性

  • 数组语法
<div v-bind:style="[baseStyles, overridingStyles]"></div>

style后面跟的是一个数组类型,多个值以,分割即可

三.计算属性

3.1.什么是计算属性

  • 我们知道,在模板中可以直接通过插值语法显示一些data中的数据。
  • 但是在某些情况,我们可能需要对数据进行一些转化后再显示,或者需要将多个数据结合起来进行显示
    • 比如我们有firstName和lastName两个变量,我们需要显示完整的名称。
      但是如果多个地方都需要显示完整的名称,我们就需要写多个{{firstName}} {{lastName}}


      计算属性.png

我们可以将上面的代码换成计算属性:


image.png

OK,我们发现计算属性是写在实例的computed选项中的。

3.2.计算属性的复杂操作

  • 计算属性中也可以进行一些更加复杂的操作,比如下面的例子:


    计算属性的复杂操作.png

3.3.计算属性的setter和getter

  • 每个计算属性都包含一个getter和一个setter
    • 在上面的例子中,我们只是使用getter来读取。
    • 在某些情况下,你也可以提供一个setter方法(不常用)。
    • 在需要写setter的时候,代码如下:


      写setter.png

3.4.计算属性的缓存

  • 我们可能会考虑这样的一个问题:
    • methods和computed看起来都可以实现我们的功能,
    • 那么为什么还要多一个计算属性这个东西呢?
    • 原因:计算属性会进行缓存,如果多次使用时,计算属性只会调用一次。
      *我们来看下面的代码:


      image.png
      image.png
  1. 事件监听
    v-on介绍
    v-on基础
    v-on参数
    v-on修饰符
  2. 条件和循环
    条件渲染
    v-show指令
    v-if和v-show对比
    v-for指令
  3. 阶段案例
  4. 表单绑定
    基本使用
    v-model原理
    其他类型
    值绑定
    修饰符

相关文章

  • Vue系列(二):Vue基础语法

    Vue基础语法 内容概述 插值操作 绑定属性 计算属性 事件监听 条件判断 循环遍历 阶段案例 v-model 一...

  • Vue 成长之旅 | Vue基础用法一

    一、Vue 基础使用 二 、 Vue的指令与过滤器 1、指令的概念 指令: 是vue为开发者提供的模板语法 , 用...

  • Vue

    Vue基础 起步 Vue采用的是MVVM的思想 官方教程 创建Vue对象 使用Vue语法时需要先创建一个Vue对象...

  • Vue.js学习笔记

    项目地址:https://gitee.com/westwall/vue-practice 目录 Vue基础语法: ...

  • 【Vue3 从入门到实战 进阶式掌握完整知识体系】002-Vue

    二、Vue语法基础 1、Vue中的应用和组件的基本部分 代码 运行结果 2、理解Vue的生命周期函数* 生命周期图...

  • Vue应用

    Vue项目 Vue结构 Vue项目打包与发布 Vue语法二 Vue网络请求 Vue路由 动态路由 编程式路由导航

  • Vue部分基础知识点总结

    Vue基础知识点: 1.Vue:过滤html标签 ----{{{数据名}}}. 2.Vue:单次插值语法: ...

  • (24)打鸡儿教你Vue.js

    学习Vue基础语法Vue中的组件Vue-cli的使用 1、使用Vue2.0版本实现响应式编程2、理解Vue编程理念...

  • vueJs的简单入门以及基础语法

    1)vue的基础语法介绍 vue的下载以及是什么这里就不说了,直接看vue官网简单的说 这篇帖子只是把语法归类了 ...

  • vue-resource用法记录

    基础语法 引入vue-resource后,可以基于全局的Vue对象使用http,也可以基于某个Vue实例使用htt...

网友评论

      本文标题:Vue系列(二):Vue基础语法

      本文链接:https://www.haomeiwen.com/subject/qnkhxktx.html