博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue.js 学习笔记(一)
阅读量:5123 次
发布时间:2019-06-13

本文共 3724 字,大约阅读时间需要 12 分钟。

Vue.js 学习笔记

声明:本文章并非原创,而是参考黑马程序员Vue.js教程配套资料,仅供学习使用,侵删。

什么是Vue.js

  • Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex)

  • Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架!

  • Vue.js 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。(Vue有配套的第三方类库,可以整合起来做大型项目的开发)

  • 前端的主要工作?

    主要负责MVC中的V这一层;主要工作就是和界面打交道,来制作前端页面效果;

为什么要学习流行框架

  • 企业为了提高开发效率:在企业中,时间就是效率,效率就是金钱;

  • 提高开发效率的发展历程:原生JS -> Jquery之类的类库 -> 前端模板引擎 -> Angular.js / Vue.js(能够帮助我们减少不必要的DOM操作;提高渲染效率;双向数据绑定的概念【通过框架提供的指令,我们前端程序员只需要关心数据的业务逻辑,不再关心DOM是如何渲染的了】)

框架和库的区别

  • 框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。

  • 库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。

Node(后端)中的 MVC 与 前端中的 MVVM 之间的区别

mark

  • MVC 是后端的分层开发概念;

  • MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModel

    mark

Vue指令

v-cloak

数据绑定,使用 v-cloak 能够解决 插值表达式闪烁的问题

{

{ msg }}

v-text

数据绑定,默认 v-text 是没有闪烁问题的

v-text会覆盖元素中原本的内容,但是 插值表达式 只会替换自己的这个占位符,不会把 整个元素的内容清空

v-html

v-html 可以将用字符串表达的html结构渲染成html

1212112

v-html也会覆盖元素中原本的内容

v-bind

属性绑定(v-bind 中,可以写合法的JS表达式)

  1. 直接使用指令v-bind
  2. 使用简化指令:
  3. 在绑定的时候,拼接绑定内容::title="btnTitle + ', 这是追加的内容'"

v-on

事件绑定

1.缩写:@

2.事件修饰符:

  • .stop 阻止冒泡
  • .prevent 阻止默认事件
  • .capture 添加事件侦听器时使用事件捕获模式
  • .self 只当事件在该元素本身(比如不是子元素)触发时触发回调
  • .once 事件只触发一次

3.案例:跑马灯效果

  1. HTML结构:

{

{info}}

  1. Vue实例:
// 创建 Vue 实例,得到 ViewModel    var vm = new Vue({      el: '#app',      data: {        info: '猥琐发育,别浪~!',        intervalId: null      },      methods: {        go() {          // 如果当前有定时器在运行,则直接return          if (this.intervalId != null) {            return;          }          // 开始定时器          this.intervalId = setInterval(() => {            this.info = this.info.substring(1) + this.info.substring(0, 1);          }, 500);        },        stop() {          clearInterval(this.intervalId);        }      }    });

v-model

唯一一个可以实现双向数据绑定的指令

案例:简易计算器

  1. HTML 代码结构
  1. Vue实例代码:
// 创建 Vue 实例,得到 ViewModel    var vm = new Vue({      el: '#app',      data: {        n1: 0,        n2: 0,        result: 0,        opt: '0'      },      methods: {        getResult() {          switch (this.opt) {            case '0':              this.result = parseInt(this.n1) + parseInt(this.n2);              break;            case '1':              this.result = parseInt(this.n1) - parseInt(this.n2);              break;            case '2':              this.result = parseInt(this.n1) * parseInt(this.n2);              break;            case '3':              this.result = parseInt(this.n1) / parseInt(this.n2);              break;          }        }      }    });

v-for

  1. 迭代数组
  • 索引:{
    {i}} --- 姓名:{
    {item.name}} --- 年龄:{
    {item.age}}
  1. 迭代对象中的属性
{
{val}} --- {
{key}} --- {
{i}}
  1. 迭代数字

这是第 {

{i}} 个P标签

注意:在2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。

当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。

为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。

v-if和v-show

一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。

在Vue中使用样式

使用class样式

  1. 数组

这是一个邪恶的H1

  1. 数组中使用三元表达式

这是一个邪恶的H1

  1. 数组中嵌套对象

这是一个邪恶的H1

  1. 直接使用对象

这是一个邪恶的H1

使用内联样式

  1. 直接在元素上通过 :style 的形式,书写样式对象

这是一个善良的H1

  1. 将样式对象,定义到 data 中,并直接引用到 :style
  • 在data上定义样式:
data: {        h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' }}
  • 在元素中,通过属性绑定的形式,将样式对象应用到元素中:

这是一个善良的H1

  1. :style 中通过数组,引用多个 data 上的样式对象
  • 在data上定义样式:
data: {        h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' },        h1StyleObj2: { fontStyle: 'italic' }}
  • 在元素中,通过属性绑定的形式,将样式对象应用到元素中:

这是一个善良的H1

转载于:https://www.cnblogs.com/Catorg/p/11012627.html

你可能感兴趣的文章
【题解】[P4178 Tree]
查看>>
QML学习笔记之一
查看>>
WPF中实现多选ComboBox控件
查看>>
Codeforces 719B Anatoly and Cockroaches
查看>>
ionic2+ 基础
查看>>
使用word发布博客
查看>>
GDOI DAY1游记
查看>>
MyBaits动态sql语句
查看>>
拉格朗日乘子法 那些年学过的高数
查看>>
vs code 的便捷使用
查看>>
用户空间与内核空间,进程上下文与中断上下文[总结]
查看>>
JAVA开发环境搭建
查看>>
Visual Studio基于CMake配置opencv1.0.0、opencv2.2
查看>>
SDN第四次作业
查看>>
django迁移数据库错误
查看>>
Data truncation: Out of range value for column 'Quality' at row 1
查看>>
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>