1.模板语法的概述

  (1)如何理解前端渲染

    将数据填充到HTML标签中,生成静态的HTML内容

2.前端渲染方式

  (1)原生JS拼接字符串

  (2)使用前端模板引擎

  (3)使用Vue特有的模板语法

3.Vue模板语法

  (1)插值表达式

  (2)指令

  (3)事件绑定

  (4)属性绑定

  (5)样式绑定

  (6)分支循环结构

4.指令

  (1)什么是自定义属性?

  (2)指令的本质就是自定义属性

  (3)指令的格式:以v-开头

5.指令介绍

  (1)v-cloak指令用法

    插值表达式存在的问题:当浏览器卡顿时,刷新页面,会出现双大括号问题

    解决对策:使用v-cloak指令

    解决该问题的原理:先隐藏样式的内容,之后在内存中进行值的替换,替换好之后再显示最终效果

  (2)数据绑定指令

    (2.1)v-text 填充纯文本

      相比插值表达式更加简洁

    (2.2)v-html

      本身存在问题,会遭到XSS攻击

      本网站内部数据可以使用,来自第三方的数据不可使用

    (2.3)v-pre填充原始信息

      跳过编译过程,显示原始信息

   (3)数据响应式

    (3.1)如何理解数据响应式?

      HTML5中的数据响应式: 由于屏幕尺寸的变化导致样式的变化

      数据的响应式: (数据的变化导致页面内容的变化)

    (3.2)什么是数据绑定?

      将数据填充到标签中

    (3.3)v-once 只编译一次

      显示内容之后不再具有响应式的功能

  (4)双向数据绑定指令

    (4.1)什么是双向数据绑定

      页面内容的变化引起模型数据的变化

      模型数据的变化引起页面内容的变化

    

    (4.2)双向数据绑定指令v-model

1 <input type="text" v-model='msg'>

    其中的v-model的值是模型数据的值

    (4.3)MVVM设计思想

      M(Model)、V(View)、VM(View-Model)

      View(DOM)  ---(DOM Listener)--->   Model(JavaScript Object)

              <---(Data Bindings)---

2022年01月14日08:35:02

  (5)事件绑定

    (5.1)Vue如何处理事件?

       v-on指令用法

1 <button v-on:click='num++'>点击</button>

       v-on简写形式

1 <button @click='num++'>点击1</button>

    (5.2)事件函数的调用方式

      在定义的Vue实例中使用methods在其中写事件函数

      直接绑定函数名称

1 <button v-on:click='handle'>点击2</button>

      调用函数

1 <button v-on:click='handle()'>点击3</button>

    (5.3)事件函数参数传递

      普通参数和事件对象

1 <button v-on:click='handle2(123,456,$event)'>点击2</button>     
      事件绑定-参数传递
        1、如果事件直接绑定函数名称,那么默认会传递事件对象作为事件函数的第一个参数
        2、如果事件绑定函数调用,那么事件对象必须作为最后一个参数显示传递,并且事件对象的名称必须是$event
      

        event.target.tagName    输出标签名
        event.target.innerHTML    输出标签中的内容
 
    (5.4)事件修饰符
      .stop      阻止冒泡
      传统的原生JS通过事件对象.stopPropagation()来阻止冒泡
1 <button v-on:click.stop='handle1'>点击1</button>
      .prevent  阻止默认行为
      传统的原生JS通过事件对象.preventDefault()来阻止默认行为
1 <a href="https://www.baidu.com" v-on:click.prevent='handle2'>百度</a>

    (5.5)按键修饰符

      .enter 回车键  

1 <input type="text" v-model='pwd' v-on:keyup.enter='handleSubmit'>

      .delete 删除键

1 <input type="text" v-model='uname' v-on:keyup.delete='clearContent'>

  

    (5.6)自定义按键修饰符

      全局 config.keyCodes对象

1 Vue.config.keyCodes.aaa = 65;

    (5.7)属性绑定

      v-bind指令用法

1 <a v-bind:href="url">百度</a>

      缩写形式

1 <a :href="url">百度1</a>

      v-model底层原理实现分析

1 <input type="text" v-bind:value="msg" v-on:input='msg=$event.target.value'>

    (5.8) 样式绑定

      class样式处理

        对象语法

1 <div v-bind:class="{active:isActive,error:isError}">测试样式</div>

        数组语法

1 <div v-bind:class="[activeClass,errorClass]">测试样式</div>

      

      style样式处理

        对象语法

1 <div v-bind:style='{border:borderStyle, width:widthStyle, height:heightStyle}'></div>

        数组语法

1 <div v-bind:style='[objStyles,overrideStyles]'></div>

    

    (5.9) 分支结构

       v-if

       v-else

       v-else-if

       v-show: v-show的原理:控制元素样式是否显示 display:none

      

1 <div v-if='score>=90'>优秀</div>
2 <div v-else-if='score<90 && score >=80'>良好</div>
3 <div v-else-if='score<80 && score >60'>一般</div>
4 <div v-else>不及格</div>

       v-show与v-if的区别

         (1)v-if控制元素是否渲染到页面

         (2)v-show控制元素是否显示(已经渲染到页面)

       

    (5.10)循环结构

      v-for遍历数组

1 <li v-for='item in fruits'>{{item}}</li>
2 <li v-for='(item,index) in fruits'>{{item + '-------' + index}}</li>

      key的作用:帮助vue区分不同的元素,从而提高性能        

1 <li :key='item.id' v-for='(item,index) in fruits'>{{item + '-------' + index}}</li>

      v-for遍历对象

<div v-for='(value,key,index) in obj'>{{value + '---' + key + '---' + index}}</div>

       v-for和v-if结合使用

1 <div v-if='value==12' v-for='(value,key,index) in obj'>{{value + '---' + key + '---' + index}}</div>

  

  声明式编程:模板的结构与最终显示的效果基本一致

  

2.Vue模板语法的更多相关文章

  1. Vue模板语法(二)

    Vue模板语法(二) 样式绑定  class绑定 使用方式:v-bind:class="expression" expression的类型:字符串.数组.对象 1.2 style绑 ...

  2. Vue模板语法(一)

    Vue模板语法 一.插值 1.1.1 文本 {{msg}} 1.1.2 html 使用v-html指令用于输出html代码 1.1.3 属性 HTML属性中的值应使用v-bind指令 1.1.4 表达 ...

  3. Vue模板语法(一)

    Vue模板语法 一 vue简介 Vue.js是一套构建用户界面的渐进式框架. 与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. Vue 的核心库只关注视图层,并且非常容易学习,非常容易与 ...

  4. Vue 模板语法 && 数据绑定

    1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8" /> 5 & ...

  5. 初始Vue、Vue模板语法、数据绑定(2022/7/3)

    文章目录 1.Vue简介 1.1.Vue的安装使用 1.2.实际的运用案例 1.3.vue开发工具的使用(这个需要在浏览器中安装) 2.初始Vue 2.1 .基础知识 2.1 .代码实例 2.2 .页 ...

  6. (Vue)vue模板语法

    Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统. ...

  7. Vue模板语法与常用指令

    Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据.在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数,结合相应系统,在应用状态改变时 ...

  8. Vue模板语法(二)

    Vue基础模板语法 二 1. 样式绑定 1.1 class绑定      使用方式:v-bind:class="expression"       expression的类型:字符 ...

  9. (32)Vue模板语法

    模板语法 文本: <span>Message: {{ msg }}</span> v-once 一次性地插值,当数据改变时,插值处的内容不会更新 <span v-once ...

  10. 11 - Vue模板语法

    Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据. 所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML ...

随机推荐

  1. 混淆css类名

    使用vite:

  2. mysql 删除商品名字重复数据,同时保留最新一条

    delete goods where goods_id in (SELECT goods_id FROM goodswhere goods_name in (select goods_name fro ...

  3. Java基础之变量与常量

    变量 定义:可以变化的量. Java是一种强类型语言,每个变量都必须声明其类型. Java变量是程序种最基本的存储单元,其要素包括变量名,变量类型和作用域. //数据类型 变量名 = 值:可以使用逗号 ...

  4. 微信字体大小调整导致的H5页面错乱问题处理

    当用户调整微信字体大小时会导致H5页面错乱,解决方案如下: ios:在css中加入-webkit-text-size-adjust: 100% !important;   body {   -webk ...

  5. c语言中位运算符及用法 异或

    a&b:  00000000 00000000   a&b=0x0 a|b : 00000000 01011111   a|b=0x5f a^b : 00000000 01011111 ...

  6. CSS中z-index的属性与使用

    z-index 属性指定一个元素的堆叠顺序. 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面. Z-index 仅能在定位元素上奏效,z-index 进行定位元素(position:abso ...

  7. JAVA中的变量与基本操作

  8. python + appium 常用公共方法封装

    appium 程序下载安装见之前的帖子:https://www.cnblogs.com/gancuimian/p/16536322.html appium 环境搭建见之前的帖子:https://www ...

  9. leetcode-560-和为 K 的子数组

    给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 . 示例 1: 输入:nums = [1,1,1], k = 2 输出:2 示例 2: 输入:num ...

  10. word在指定页面设置页码

    需求:比如,毕业论文前面几页要求罗马数字(摘要-目录)(这里设置页码格式即可完成),后面全是阿拉伯数字(这里比较难搞,以下方法是解决这里的) 方法: 1. 光标移到指定页面的第一个字符所在的位置前 2 ...