Vue基础-Day 01


插值表达式 {{}}
v-cloak
v-text
v-html
v-bind
v-on
事件修饰符
v-model数据双向绑定
vue操作样式
v-for 和 key属性
v-if 和 v-show
1.什么是Vue.js
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

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

2.框架和库的区别
框架是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。
例如:Node中的express

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

3.为什么学习流行框架
为了提高开发效率:在企业开发中,效率就是金钱;使用框架,能够提高开发的效率;

双向数据绑定的概念能够帮助我们减少不必要的DOM操作,提高渲染效率;通过框架提供的指令,我们前端程序员只需要关心数据的业务逻辑,不再关心DOM是如何渲染的了

使用框架有利有弊(比如兼容IE最多到 IE9),但相对来说市场需求比原生大,易于找工作,提高工资。

4.MVC与MVVM的区别
MVC(Model模型—View视图—Controller控制器)是前后端的未分离的时代,后端分层开发概念;
 
View视图层 是用户能给个看到并进行交互的客户端界面,如桌面应用的图形界面、浏览器端渲染的网页等;
 
Model数据操作层 ,用于计算、校验、处理和提供数据,但不直接于用户产生交互;
 
Controller业务逻辑层 则负责收集用户输入的数据,向相关模型请求数据并返回相应的视图来完成交互请求。
 
MVVM(Model模型—View视图—ViewModel视图模型或称为调度者)是前后端分离后,前端把原本的MVC中的View又再次细分后的概念,前端中的所有页面都统称为 MVC中的View视图层,MVVM是前端的开发思想。
 
其最重要的特性是 双向数据绑定 ,此外还包括依赖注入,路由配置,数据模板等一些特性。
 
前后端分离是因为随着技术的发展对前端的要求越来越高,未分离时代的前端理念是“能用就行”…
 
MVVM中的 M 也是数据操作层,即处理页面中需要渲染的数据的部分,数据都是从服务端请求回来的。
 
MVVM中的 V 也是View视图层,即专门用来给用户看的部分、网页长什么样子。
 
MVVM中的 VM 是MVVM中的核心概念,是一个调度者,它实现了双向数据绑定,可以把 Model数据操作层 的数据渲染到 View视图层 ,同时 View视图层 的数据发生改变也可以自动同步到 Model层 中,VM解放了前端程序员的双手,前端程序员不用再操作DOM了,只需关心前端的业务逻辑即可。
5.Vue的代码结构
引入vue.js
 <script src="./vue-2.4.0.js"></script>
1
写视图层,我们要展示的内容
  <div id="box">
    <button @click="start" :disabled="flag">啊动</button>
    <button @click="stop" :disabled="!flag">啊停</button>
    <h4 id="text">{{msg}}</h4>
  </div>
实例化Vue()
  let vm = new Vue({
      //可操作区域
    el:"#box",
    //视图层需要用的数据
    data:{},
    //可以用vue语法调用的方法,写方法时要注意this指向问题
    methods:{}
  })

6.Vue的基础语法 - 待补充完毕
插值表达式 {{}}
数据绑定最常见的形式就是使用 “Mustache” 语法 (双大括号) 的文本插值
<span> Message: {{msg}} </span>
1
Mustache 标签将会被替代为对应数据对象上 msg property 的值。无论何时,绑定的数据对象上 msg property 发生了改变,插值处的内容都会更新。

通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定:

<span v-once> 这个将不会改变: {{msg}} </span>
1
v-cloak
v-cloak 用来防止页面闪烁;

在HTML结构中使用了插值表达式 {{}} 后,如果引入的是线上的 vue.js ,那么当网络不好时,插值表达式不会被对应的数据对象上的属性值代替,而是会直接以文本形式显示

如:{{msg}}

当引入完成后,会再次被对应数据对象上的属性值代替,造成页面闪烁

随着网速越来越快,一般也不会出现这个问题了。

v-text
v-text 可以将对应数据对象上的属性值以文本的形式展示,但是不可以解析富文本(即不会识别HTML标签),类似于.text()方法。

v-html
v-html 可以解析富文本,如果对应数据对象上的属性值中有完整的HTML标签形式,则会在当前HTML结构中添加,类似于.html()方法。

他们两个的异同:

v-text 和 v-html 都会覆盖原来的内容,但是 v-text 不能解析富文本,而 v-html 可以

v-bind
v-bind 用来将 HTML标签 中的属性进行数据绑定,其属性值为对应的数据对象上的属性值,如果数据对象的属性值发生改变,标签中的属性值也会发生改变。

v-bind 的缩写为:

v-on
v-on 用来监听HTML标签绑定的事件,事件的处理方法写在vue对象的methods属性里。

methods 里的方法可以操作 data 中的属性和 全局变量,写方法时要注意this的指向问题

事件修饰符
v-model数据双向绑定
vue操作样式
v-for 和 key属性
v-if 和 v-show

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值