学习vue第一天

90 阅读6分钟

DAY1: 1.vue 快速上手

1.vue概念

优点:大大提升开发效率(70%个)
缺点:需要理解记忆规则 (官网去学习)
概念:Vue 是一个用于 1.构建用户界面 的 2.渐进式 3.框架
  1.构建用户界面
      基于数据渲染出用户看到的页面
  2.渐进式
      循序渐进,由内到外:
        1.声明式渲染  
        2.组件系统       //1和2 在一起交  vuejs 核心包
        3.客户端路由(VueRouter)
        4.大规模状态管理(Vuex)
        5.构建工具(Webpack/Vite)
          补充:
          Vue 的两种使用方式
            1.Vue 核心包开发
              场景:局部 模块改造
            2.Vue 核心包 & Vue 插件 工程化开发
              场景:整站 开发
  3.框架
      一套完整的项目解决方案
  4.总结
      Vue是什么?
          Vue 是一个用于 构建用户界面 的 渐进式 框架
        1.构建用户界面:基于 数据 动态 渲染 页面
        2.渐进式:循序渐进的学习
        3.框架:一套完整的项目解决方案,提升开发效率(理解记忆规则)  规则 → 官网

2.创建实例

  创建 Vue 实例,初始化渲染的核心步骤:
    1.准备容器
    2.引包(官网)-开发版本/生产版本
    3.创建 Vue 实例 new Vue()     //注意:此处的V要大写
    4.指定配置项 el data => 渲染数据

3.插值表达式{{}}

  插值表达式是一种 Vue 的模板语法
    1.作用:利用表达式进行插值,渲染到页面中
        表达式:是可以被求值的代码,JS引擎会将其计算出一个结果
    2.语法:{{ 表达式 }}
        <h>{{ title }}</h>
        <p>{{ nickname.toUppercase()}}</p>
        <p>{{ age >= 18 ?'成年’:'未成年’}}</p>
        <p>{{ obj.name }}</p>
    3.注意点:
        1.使用的数据必须存在(data)
        2.支持的是表达式,而非语句,比如:if for…
        3.不能在标签属性中使用 {{}}插值
    4.总结
        1.插值表达式的作用是什么?
            利用表达式进行插值,将数据渲染页面中
        2.语法格式?
            {{表达式 }}
        3.插值表达式的注意点:
            1.使用的数据要存在 (data)
            2.支持的是表达式,而非语句if.. for
            3.不能在标签属性里面使用

4.Vue 核心特性:响应式

  我们已经掌握了基础的模板渲染,其实除了基本的模板渲染,Vue背后还做了大量工作。比如:数据的响应式处理 → 响应式: 数据变化,视图自动更新
    例如:
      <div id="app>
        {{ msg }}
      </div>
      const app = new Vue({
        el:#app
        data:{
          msg:Hello Vue
        }
      如果此时 Hello Vue 改成 Hello 黑马  上面div标签中也会自动更新
  1.如何访问 or 修改? data中的数据,最终会被添加到实例上
    1.访问数据:"实例.属性名"
    2.修改数据:"实例.属性名"=""
  2.底层逻辑:数据改变,视图会自动更新
    1.数据 -> 修改数据 -> vue监听到数据修改 -> 自动更新视图(Dom操作) -> 视图界面
    2.聚焦于数据 → 数据驱动视图
    3.使用 Vue 开发,关注 业务的核心逻辑,根据业务 修改数据 即可
  3.总结
    1.什么是响应式呢?
        1.数据改变,视图自动更新
        2.使用 Vue 开发 → 专注于业务核心逻辑 即可
    2.如何访问或修改数据呢?
      data中的数据,最终会被添加到实例上
        1.访问数据:"实例.属性名!
        2.修改数据:"实例.属性名"="值"

5.开发者工具

  看第7集

2.Vue 指令

Vue 会根据不同的【指令】,针对标签实现不同的【功能】
1.指令:带有 v-前缀 的 特殊 标签属性
2.示例:
    !--Vue 指令:v-前缀的标签属性 -->
    <diy v-html="str"></div>
3.总结
  1.什么是 Vue 指令呢?
      1.指令就是带有 v- 前缀 的特殊 属性,不同属性 对应 不同的功能
      2.学习不同指令 → 解决不同业务场景需求
  2.如果需要动态解析标签,可以用哪个指令?语法?
      v-html="表达式" → 动态设置元素 innerHTML  
4.常用的指令(官网可查所有指令)
  1.v-html:
      1.作用:设置元素的 innerHTML
      2.语法:v-html="表达式
  2.v-show
      1.作用:控制元素显示隐藏
      2.语法:v-show="表达式"表达式值 true 显示, false 隐藏
      3.原理:切换 display:none 控制显示隐藏
      4.场景:频繁切换显示隐藏的场景
  3.v-if
      1.作用: 控制元素显示隐藏(条件渲染)
      2.语法:v-if="表达式”表达式值 true 显示, false 隐藏
      3.原理: 基于条件判断,是否 创建 或 移除 元素节点
      4.场景: 要么显示,要么隐藏,不频繁切换的场景
  4.v-else和v-else-if
      1.作用: 辅助 v-if 进行判断渲染
      2.语法:v-else v-else-if="表达式
      3.注意: 需要紧挨着 v-if 一起使用
  5.v-on
      1.作用:注册事件 = 添加监听 +提供处理逻辑
      2.语法:
          1.v-on:事件名="内联语句"
          2.v-on:事件名="methods中的函数名"
      3.简写:@事件名 @ === v-on:   //注意:冒号 :也是代替了的
          <button v-on:click="count++">按钮</button>
          <button @click="count++">按钮</button>
      4.练习帮助理解2.语法
      5.v-on调用传参
          <button @click="fn(参数1,参数2)">
            按钮
          </button>
            const app = new Vue({
            el:'#app',
            methods:{
              fn(a, b){
                console.log('这是一个fn函数')
                }
              }
            })
      6.看练习帮助理解
  6.v-bind
      1.作用: 动态 的设置html的标签属性→>src url title .
      2.语法:v-bind:属性名="表达式”
      3.简写形式: :属性名="表达式"    // : === v-bind
      4.看练习帮助理解
  7.v-for
      1.作用: 基于数据循环,多次渲染整个元素  ->  数组、对象、数字..
          <p V-for="">我是一个内容 </p>
      2.遍历数组语法:
          v-for="(item,index)in 数组"
          item 每一项,index 下标
          省略index:v-for="item in 数组
      3.补充:v-for中的key
          1.语法:key属性="唯一标识"
          2.作用:给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用
          3.不加key:v-for 的默认行为会尝试 原地修改元素(就地复用)。白话说,就是没有删除第一个li标签,只是把内容删除,后面的内容往前补
          4.注意点:
              1.key 的值只能是 字符串 或 数字类型
              2.key 的值必须具有 唯一性
              3.推荐使用 id 作为 key(唯一),不推荐使用 index 作为 key(会变化,不对应)
                语法:<li v-for="(item, index) in xxx" :key="唯一值">
      4.看练习帮助理解
  8.v-model
      1.作用:给 表单元素 使用,双向数据绑定 -> 可以快速 获取 或 设置 表单元素内容
            数据变化 -> 视图自动更新
            视图变化 -> 数据自动更新
      2.语法:v-model='变量'
      3.看练习帮助理解

3.综合案例-小黑记事本

1.列表渲染/删除功能/添加功能/底部统计和清空  看综合案例
2.功能总结:
    1.列表渲染:
        v-for   key的设置   {{}} 插值表达式
    2.删除功能
        v-on调用传参   filter过滤   覆盖修改原数组
    3.添加功能
        v-model绑定    unshift修改原数组添加
    4.底部统计 和 清空
        数组.length累计长度
        覆盖数组清空列表
        v-show 控制隐藏