Vue.js快速入门指南:零基础也能轻松上手,开启前端开发之旅!

news2024/11/23 21:35:58

目录

  • MVC设计模式与MVVM设计模式
  • 选项式API的编程风格与优势
  • 声明式渲染及响应式数据实现原理
  • 指令系统与事件方法及传参处理
  • 计算属性与侦听器区别与原理
  • 条件渲染与列表渲染及注意点
  • class样式与style样式的三种形态
  • 表单处理与双向数据绑定原理
  • 生命周期钩子函数及原理分析

MVC设计模式与MVVM设计模式

在这里插入图片描述
MVVM设计模式比MVP模式的优势:

  • ViewModel能够观察到数据的变化,并对视图对应的内容进行自动更新
  • ViewModel能够监听到视图的变化,并能够通知数据发生变化

选项式API的编程风格与优势

let vm = createApp({
  methods: {},
  computed: {},
  watch: {},
  data(){},
  mounted(){}
})

优势:

  • 只有一个参数,不会出现参数顺序的问题,随意调整配置的位置
  • 非常清晰,语法化特别强
  • 非常适合添加默认值的

声明式渲染及响应式数据实现原理

  • 声明式编程与命令式编程的区别
    在这里插入图片描述

  • 数据是通过 {{ }} 模板语法来完成的,模板语法支持编写JS表达式

  • 使用Vue.js创建一个简单的计数器应用
    在这里插入图片描述

  • 响应式数据实现的原理:利用JS的Proxy对象Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,其实就是直接监控值的修改,当值发生改变的时候,可以监控到。

    • 定义Vue实例的响应式数据:需要在 ​data()​函数中定义对应的属性和初始值,然后将该函数返回的数据对象传递给 ​data​选项。在组件中使用并修改这些属性时,会触发相应的更新并使页面反映这些变化
      -

指令系统与事件方法及传参处理

  • 指令系统就是通过自定义属性实现的一套功能,也是声明式编程的体现。

  • 通常在标签上添加 v-* 字样,常见的指令有:

    • v-bind -> 操作标签属性,可通过 : 简写
    • v-on -> 操作事件,可通过 @ 简写
      在这里插入图片描述
  • 如何添加事件方法,通过methods选项API实现,并且Vue框架已经帮我们帮事件传参机制处理好了。
    -

计算属性与侦听器区别与原理

  • 计算属性

    • 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。

    • 在模板中放入太多的逻辑会让模板过重且难以维护,所以过于复杂的逻辑可以移植到计算属性中进行处理。
      -

    • 计算属性与方法比较像,如下所示:
      在这里插入图片描述

      • 计算属性跟方法相比,具备缓存的能力,而方法不具备缓存,所以上面代码执行完,会弹出两次1和一次2。

      • 注意:默认是只读的,一般不会直接更改计算属性,如果想更改也是可以做到的,通过Setter写法实现,官方地址。

  • 侦听器

    • 虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器
    • 侦听器的目的:侦听器用来观察和响应Vue实例上的数据变动,类似于临听机制+事件机制。
    • 应用场景:当有一些数据需要随着其它数据变化而变化时,就可以使用侦听器。
      -
  • 有时候,计算属性 和 侦听器 往往能实现同样的需求,那么他们有何区别呢?

    • 计算属性适合:多个值去影响一个值的应用;
    • 侦听器适合:一个值去影响多个值的应用;
    • 侦听器支持异步的程序,而计算属性不支持异步的程序

条件渲染与列表渲染及注意点

  • 条件渲染

    • v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回truthy值的时候被渲染。
    • 在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 falsy 假值(即除 false、0、null、undefinedNaN 以外皆为真值)。
      **加粗样式**
  • 列表渲染

    • v-for 指令基于一个数组来渲染一个列表。
    • v-for 指令需要使用item in items形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。
      -
  • 条件渲染与列表渲染需要注意的点
    在这里插入图片描述

    • 因为v-if优先级高于v-for,这样v-if拿不到v-for中的item属性值

class样式与style样式的三种形态

  • 操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是 attribute,所以我们可以用v-bind处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将v-bind用于 class style时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。
    • 数组和对象的形式要比字符串形式更加的灵活,也更容易控制变化
      在这里插入图片描述

表单处理与双向数据绑定原理

  • 表单是开发过程中经常要进行操作的,一般需要收集表单数据,发送给后端,或者把后端的数据进行回显等。

  • 在Vue中是通过v-model指令来操作表单的,可以非常灵活的实现响应式数据的处理。
    在这里插入图片描述

  • 尽管有些神奇,但 v-model 本质上不过是语法糖。可通过value属性 + input事件来实现同样的效果。
    在这里插入图片描述

  • v-model除了可以处理输入框以外,也可以用在单选框、复选框、以及下拉菜单中。

    <div id="app">
        <input type="checkbox" v-model="fruits" value="苹果">苹果<br>
        <input type="checkbox" v-model="fruits" value="西瓜">西瓜<br>
        <input type="checkbox" v-model="fruits" value="哈密瓜">哈密瓜<br>
        {{ fruits }
        <input type="radio" v-model="gender" value=""><br>
        <input type="radio" v-model="gender" value=""><br>
        {{ gender }}
        <select v-model="city">
          <option value="北京">北京</option>
          <option value="上海">上海</option>
          <option value="杭州">杭州</option>
        </select>
        {{ city }}
    </div>
    <script>
        let vm = Vue.createApp({
            data(){
                return {
                    fruits: ['西瓜', '哈密瓜'],
                    gender: '男',
                    city: '杭州'
                }
            }
        }).mount('#app');
    </script>
    

生命周期钩子函数及原理分析

  • 每个组件在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。

  • 就是工厂的流水线,每个工人站在各自的岗位,当任务流转到工人身边的时候,工人就开始工作。

  • 简单来说生命周期钩子函数就是回调函数,在Vue的某个时机去调用对应的回调函数。就像定时器一样,谁调用的定时器的回调函数呢?其实就是定时器内部在调用的。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/877077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零实战SLAM-第六课(视觉里程计I)

在七月算法报的班&#xff0c;老师讲的蛮好。好记性不如烂笔头&#xff0c;关键内容还是记录一下吧&#xff0c;课程入口&#xff0c;感兴趣的同学可以学习一下。 --------------------------------------------------------------------------------------------------------…

解决echarts和v-show一起使用canvas宽高改变

本来是想没有数据显示暂无数据的&#xff0c;结果显示成了这样 1.把V-show改成v-if <template><divclass"chart1"ref"chart1"v-if"!nodata"style"width: 100%; height: 100%"></div><el-empty description&quo…

生信豆芽菜-单基因与基因集的关系

网址&#xff1a;http://www.sxdyc.com/panCancerGeneSet 该工具主要用于查看单基因在泛癌中与各个不同基因集的相关性 提交后等待运行成功即可&#xff0c;还可以关注公众号&#xff1a;豆芽数据分析

LeetCode150道面试经典题-- 存在重复元素 II(简单)

1.题目 给你一个整数数组 nums 和一个整数 k &#xff0c;判断数组中是否存在两个 不同的索引 i 和 j &#xff0c;满足 nums[i] nums[j] 且 abs(i - j) < k 。如果存在&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 2.示例 示例 1&#xff1a; 输…

mybatis-plus 根据指定字段 批量 删除/修改

mybatis-plus 提供了根据id批量更新和修改的方法,这个大家都不陌生 但是当表没有id的时候怎么办 方案一: 手写SQL方案二: 手动获取SqlSessionTemplate 就是把mybatis plus 干的事自己干了方案三 : 重写 executeBatch 方法结论: mybatis-plus 提供了根据id批量更新和修改的方法,…

创建百度百科需要什么条件?

随着互联网的发展&#xff0c;人们越来越依赖于搜索引擎获取信息。百度作为中国最大的搜索引擎之一&#xff0c;旗下的百科词条已成为人们获取知识的重要来源。创建百度百科需要什么条件呢&#xff1f;接下来伯乐网络传媒就来给大家讲一讲。 首先&#xff0c;你需要有一个百度…

最小生成树(Kruskal)克鲁斯卡尔算法

算法步骤总共分为两步&#xff0c;由并查集实现 第一步&#xff08;把所有的边按边长的大小进行排序&#xff09; 第二步&#xff08;如果两个点不连通就把两点之间的边加上再把两个点连通&#xff09; 当放入的边数为点数减去一时就代表已经全部连通 例题一&#xff08;859. …

五、Dubbo 启停原理解析

五、Dubbo 启停原理解析 5.1 配置解析 5.1.1 基于 schema 设计解析 Dubbo 配置约束文件在 dubbo-config/dubbo-config-spring/src/main/resources/dubbo.xsd 中&#xff0c;dubbo.xsd 文件用来约束使用 XML 配置时的标签和对应的属性 5.1.2 基于 XML 配置原理解析 主要解…

优维低代码实践:自定义模板

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

threejs中gltf模型出现的问题(黑色,颜色不协调,太小)和解决方案

模型一片漆黑 如下图 可能原因&#xff0c;没有灯光&#xff0c;加下以下代码&#xff1a; // 4、加入灯光 const lightness new THREE.HemisphereLight(0xffffff, 0x444444); lightness.position.set(0, 20, 0); scene.add(lightness); const shadowLight new THREE.Direct…

20230814让惠普(HP)锐14 新AMD锐龙电脑不联网进WIN11进系统

20230814让惠普(HP)锐14 新AMD锐龙电脑不联网进WIN11进系统 2023/8/14 17:19 win11系统无法跳过联网 https://www.xpwin7.com/jiaocheng/28499.html Win11开机联网跳过不了怎么办&#xff1f;Win11开机联网跳过不了解决方法 Win11开机联网跳过不了怎么办&#xff1f;Win11开机…

gearman使用心得

gearman基础 工作原理 部署架构 本质上&#xff0c;gearman可以认为是一个分布式任务队列&#xff0c;client是生产者&#xff0c;worker则是消费者。gearman并不主动分发任务&#xff0c;而是由worker到它那里去取任务执行&#xff0c;所以它采用的是类似kafka的pull消费模式…

【Unity每日一记】向量操作摄像机的移动(向量加减)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

【JavaWeb】实训的长篇笔记(上)

JavaWeb的实训是学校的一门课程&#xff0c;老师先讲解一些基础知识&#xff0c;然后让我们自己开发一个比较简单的Web程序。可涉及的知识何其之多&#xff0c;不是实训课的 3 周时间可以讲得完的&#xff0c;只是快速带过。他说&#xff1a;重点是Web开发的流程。 我的实训草草…

c++虚继承(使用)

class A2:virtual public Grand 1.构造顺序按派生列表顺序&#xff0c;若有虚基类先构造虚基类&#xff0c;销毁顺序和构造顺序相反。 2.虚基类时&#xff0c;孙子C来初始化爷爷Grand。 附&#xff1a;thinking in c 2nd https://www.micc.unifi.it/bertini/download/progr…

【数据结构】 初识集合框架

文章目录 什么是集合框架集合框架的重要性开发中的使用笔试及面试题 数据结构是什么容器背后对应的数据结构相关java知识 什么是算法如何学好数据结构以及算法多画图多思考死磕代码多总结多刷题 总结 什么是集合框架 这里博主将简单介绍一下集合框架&#xff0c;想要详细了解的…

为什么需要知识图谱,如何构建它?

从关系数据库迁移到图形数据库的指南 跟随 发表于 迈向数据科学 7 分钟阅读 4天前 154 4 一、说明 TLDR&#xff1a;知识图谱在图数据库中组织事件、人员、资源和文档&#xff0c;以进行高级分析。本文将解释知识图谱的用途&#xff0c;并向您展示如何将关系数据模型转换为图…

【Sklearn】基于最中心分类器算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于最中心分类器算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 最近中心分类器&#xff08;Nearest Centroid Classifier&#xff09;也被称为近似最近邻…

SolidUI 一句话生成任何图形,v0.2.0功能介绍

文章目录 背景聊天窗口提示词 聊天窗口生成输入数据格式柱形图曲面图散点图螺旋线饼图兔子建模地图 设计页面页面布局预览 SolidUI社区的未来规划如何成为贡献者加群 背景 随着文本生成图像的语言模型兴起&#xff0c;SolidUI想帮人们快速构建可视化工具&#xff0c;可视化内容…

BFS(广度优先搜索) 的相关介绍解析

文章目录 DFS 和 BFSBFS 的应用一&#xff1a;层序遍历BFS 的应用二&#xff1a;最短路径最短路径例题讲解 DFS&#xff08;深度优先搜索&#xff09;和 BFS&#xff08;广度优先搜索&#xff09;就像孪生兄弟&#xff0c;提到一个总是想起另一个。然而在实际使用中&#xff0c…