vue框架 v-*的指令

目录

  • vue框架 v-*的指令
  • 大纲
    • 斗篷指令(了解)
    • 属性指令
    • 事件补充
    • 表单指令
    • 条件指令
    • 循环指令
    • 面试题:todolist
    • 小结

vue框架 v-*的指令

"""
1、简述vue框架的作用和优势
    作用:开发前后台分离项目
    优势:前后台分离(开发效率)、轻量级(开发效率)、中文API(学习成本)
    框架的特点:数据驱动、虚拟DOM、单页面应用(很好适配移动端项目)、数据的双向绑定(监听机制)

2、列举出三个vue的指令,并简述每个指令的用法
    v-text:  v-text="变量",类似{
      { 变量|基本类型|简单表达式 }} => 设置文本
    v-html:  可以解析有html语法的文本 => 设置html文本
    v-on:   v-on:事件名="方法名"  |  v-on:事件名="方法名($event, ...)" => 设置事件
    
3、列举出至少三个vue实例成员,并简述每个实例成员的用法 el: id选择器,body html不能作为挂载点,只匹配一个 data:提供渲染的数据 methods:提供绑定的方法 delimiters:插值表达式标识符, ['{ {', '}}'] filters:提供自定义过滤器,过滤器可以同时过滤多个参数,还可以串联过滤器 let data = {} new Vue({ 'el': '#app', data, ... }) 4、js补充 对象 类:class function 类属性:Vue.prototype.类属性 函数:let fn = () => {} """

大纲

"""
1)指令
    属性指令:v-bind
    表达指令:v-model
    条件指令:v-show v-if
    循环指令:v-for
    斗篷指令:v-cloak
    
2)实例成员
    计算:computed
    监听:watch
    
3)vue项目环境
"""

斗篷指令(了解)

v-cloak:避免屏幕闪烁

"""
v-cloak:避免屏幕闪烁
1)属性选择器,会将v-cloak属性所在的标签隐藏
2)当vue环境加载后,会将v-cloak属性解析移除,所以内容{
      { num }}就会显示出来
3)而现在vue已经准备完毕,所以用户会直接看到数值10,而不会看到 页面从{
      { num }}闪烁成数值10    """

{ { num }}

{ { num }}

结果:

vue框架 v-*的指令_第1张图片

属性指令

属性指令:v-bind:属性名="变量"

"""
/** 属性指令
* 1)语法:v-bind:属性名="变量"
* 2)针对不同属性,使用方式稍微有一丢丢区别
*      i)自定义属性以及title这些,直接赋值的,使用方式如下(t是变量,'o'是常量)
*          

段落

* ii)class属性(重点): * 绑定的变量:值可以为一个类名 "p1",也可以为多个类名 "p1 p2" * 绑定的数组:数组的每一个成员都是一个变量 * 绑定的字典:key就是类名,value是绝对该类名是否起作用 * iii)style属性(了解): * 绑定的变量:值是一个字典 */ """

段落


案例



  
重点:事件指令与属性指令都可以简写




事件补充


伪类操作



事件处理

表单指令

v-model="变量"

"""
1)语法:v-model="变量"
2)v-model绑定的变量控制的其实就是value属性值
3)v-model要比v-bind:value要对一个监听机制
4)数据的双向绑定:
    v-model可以将绑定的变量值映射给表单元素的value
    v-model还可以将表单元素的新value映射给报道的变量
"""



代码:




    
    表单指令


    

{ { v1 }}

结果:

vue框架 v-*的指令_第2张图片

条件指令

v-show="变量" | v-if="变量"

"""
/**
* 1)语法:v-show="变量"  |  v-if="变量"
* 2)两者的区别:
*      v-show在隐藏标签时,采用display:none渲染标签,标签通过css隐藏
*      v-if在隐藏标签时,不会渲染在页面上
*
* 3)v-if有家族:v-if | v-else-if | v-else
*      v-if是必须的,必须设置条件
*      v-else-if可以为0~n个,必须设置条件
*      v-else可以为0~1个
*      上方分支成立会屏蔽下方所有分支,从上至下依次类推
*/
"""



    
    


    

show控制显隐

if控制显隐

你是第1个p

你是第2个p

你是第3个p

结果:

vue框架 v-*的指令_第3张图片

案例


结果:

vue框架 v-*的指令_第4张图片

循环指令

v-for="ele in obj" 循环指令

"""
/**
* 1)语法:v-for="ele in obj"  obj是被遍历的对象,ele是遍历得到的每一次结果
* 2)遍历可迭代对象的首要结果,都是可迭代对象容器中的值,其次还可以遍历得到索引及键等数据
*      字符串:v-for="v in str"  |  v-for="(v, i) in str"
*      数组:v-for="v in arr"  |  v-for="(v, i) in arr"
*      对象:v-for="v in obj"  |  v-for="(v, k) in obj"  |  v-for="(v, k, i) in obj"
* 注:v-for遍历要依赖于一个所属标签,该标签及内部所有内容会被遍历复用
*/
"""



    
    循环指令


    

{ { d1 }}

【{ { e }}】

{ { d2 }}

【{ { e }}】 【{ { i }}{ { e }}】

{ { d3 }}

【{ { e }}】 【{ { i }}{ { e }}】

{ { d4 }}

【{ { e }}】 【{ { k }}-{ { e }}】 【{ { k }}-{ { e }}-{ { i }}】

结果:

vue框架 v-*的指令_第5张图片

商品循环案例



    
    循环案例
    


    

{ { obj.title }}

结果:

vue框架 v-*的指令_第6张图片

面试题:todolist

js的Array操作
"""
尾增:arr.push(ele)  
首增:arr.unshift(ele)
尾删:arr.pop()
首删:arr.shift()
增删改插:arr.splice(begin_index, count, args)
"""
前台数据库
"""
// 存
// 持久化化存储,永远保存
localStorage.name = "Bob";
// 持久化化存储,生命周期同所属标签(页面),页面关闭,重新打开就会丢失
sessionStorage.name = "Tom";

// 取
console.log(localStorage.name);
console.log(sessionStorage.name);

// 清空
localStorage.clear();
sessionStorage.clear();

// 短板:只能存储字符串,所有对象和数组需要转换为json类型字符串,再进行存储
let a = [1, 2, 3];
localStorage.arr = JSON.stringify(a);
let b = JSON.parse(localStorage.arr);
console.log(b);
"""
案例:留言板


  • { { info }}

结果:

vue框架 v-*的指令_第7张图片

小结

"""
1、v-cloak斗篷指令
2、属性指令
    v-bind:title="变量"
    :class="变量" | :class="[变量1, ..., 变量n]"  |  :class="{类名: 布尔变量}"
    :style="字典变量"
3、事件:@click @dblclick @mouseover|out|down|up
    鼠标单击、双击、悬浮、移开、按下、抬起
4、表单指令:
    v-model绑定变量控制value属性,可以实现双向绑定
5、条件指令:
    v-show | v-if
    v-if | v-else-if | v-else
6、循环指令:
    字符串:v-for="v in str"  |  v-for="(v, i) in str"
    数组:v-for="v in arr"  |  v-for="(v, i) in arr"
    对象:v-for="v in obj"  |  v-for="(v, k) in obj"  |  v-for="(v, k, i) in obj"
    
7、Array操作
    arr.push(ele)  arr.unshift(ele)
    arr.pop()  arr.shift()
    arr.splice(begin_index, count, args)

8、前台数据库
    localStorage | sessionStorage
    1)操作就类似于obj,直接 .key 语法访问 value
    2)localStorage永久存储
    3)sessionStorage生命周期同所属页面标签
    
"""

你可能感兴趣的:(vue框架 v-*的指令)