一、VUE概念?

Vue.js  (打包工具Webpack)

Vue.js 是最流行的前端框架(可以用于手机App开发,借助Weex)

Vue.js 和 Angeular、React.js(React是最流行的前端框架(开发网站和手机App))一起成为三大主流框架

Vue只关注视图层,方便与第三方库项目整合。

前端的主要工作?

前端主要负责MVC的V这一层主要工作就是和界面打交道

04

二、为什么要学习流行框架?

学习框架后会提高开发效率

提高前端效率的开发历程 原生JS –> Jquery之类的类库 ->前端模板引擎 –>Angular.js

·前端模板引擎

[

{id:1,name:’zs1’},

{id:2,name:’zs2’},

{id:3,name:’zs3’},

]

渲染成一个表格,按照id从小到大排序,调用模板引擎进行渲染。

所以Vue.js减少不必要的dom操作,提高了渲染效率,双向数据绑定概念[通过框架提供的指令,我们只需要关注业务逻辑处理,不在关心dom如何渲染]

在Vue中,一个核心概念,就是让用户不再操作DOM元素,解放了双手。

三、框架和库的区别?

框架是一套完整的解决方案,项目如果需要更换框架,则需要重新构架。

-node中 epress

库能提供某一个小程序,对项目入侵性较小,一个库无法满足某些需求,则可以切换到其他库。

  1. 从Jquery切换到Zepto
  2. 从EJS切换到art-template

四、Node中MVC和前端中MVVM的区别?

View视图层进一步完善

五、v-cloak、v-text、v-html的基本使用?

1.网速很慢请求速度也比较慢,先导入包然后再创建自己的script方法

v-cloak 指令 属性选择器,默认display-none 解决插值表达式闪烁问题

v-test也可以渲染。

区别:默认v-test无闪烁问题。

插值表达式:++++++++++++++{{msg}}----------------------前后可以放任一内容

v-test    Msg     解析到标签</h4>时会直接将msg将其替换。

2.v-html

v-html也会覆盖变量内容

3.

不能直接写mytitle,要告诉程序这是一个变量,正确写法如下:

把(要绑定的变量)v-bind:title=”变量+表达式”解析的结果当作表达式

v-bind另一种表达方法为  :

总结:

Vue指令之`v-bind`的三种用法

直接使用指令`v-bind`

使用简化指令`:`

在绑定的时候,拼接绑定内容:`:title="btnTitle + ', 这是追加的内容'"`

4.实现需求:点击按钮显示一句话

另一种实现方法:

Vue中时间绑定机制:v-on

(其中alert会被认为是变量,没有被定义,所以报错。)

Show方法会从下图的methods中寻找

保存运行会弹出框’Hello’

5.还可以把v-on:click改为 v-on:mouseover

六、跑马灯效果制作

第一步:导入Vue包

第二步:创建一个控制区

Var vam=new Vue({得到实例对象

el:’#app’指定控制元素

data

{msg:  ’稳住,我们能赢’

}

第三步:渲染

第四步:创建按扭(绑定点击事件)

第五步:按扭时间处理函数中写相关业务逻辑代码(msg,调用substring进行字符串截取操作,把第一个字符截取放到最后位置)

第六步:自动截取功能把五步代码放到计时器里

在nm实例中,想调用data上或method上的方法,必须通过this.数据属性名或this.方法名进行访问,这里的this就表示我们new出来的对象。

VM会监听自己身上data中所有数据的改变,实现data的同步。

好处:程序员只需要关心数据不需要关心DOM页面。

防止定时器点击多次加速问题

每次清除了定时器后,需要把intervalid置为nulll

实验结果:

七、时间修饰符

触发click,冒泡终结。

+ .stop       阻止冒泡

+ .prevent    阻止默认事件

+ .capture    添加事件侦听器时使用事件捕获模式

+ .self       只当事件在该元素本身(比如不是子元素)触发时触发回调

+ .once       事件只触发一次处理

八、双向数据绑定(唯一指令)

Msg定义的字符会帮助我们挂载到window.vm的msg上

Vm.msg 可以直接修改页面字符 (单向)

</h4>标签无法发生交互行为

属性绑定v-bind将msg进行属性绑定(单向)

v-model`数据绑定(双向,只能运用在表单元素 input select )

九、计算器案例

1.操作符

计算器计数的方法:

总结 :框架

<div id="app">

<input type="text" v-model="n1">

<select v-model="opt">

<option value="0">+</option>

<option value="1">-</option>

<option value="2">*</option>

<option value="3">÷</option>

</select>

<input type="text" v-model="n2">

<input type="button" value="=" v-on:click="getResult">

<input type="text" v-model="result">

</div>

十、属性设置class类样式

1. 数组

```

<h1 :class="['red', 'thin']">这是一个邪恶的H1</h1>

```

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

```

<h1 :class="['red', 'thin', isactive?'active':'']">这是一个邪恶的H1</h1>

```

3. 数组中嵌套对象

```

<h1 :class="['red', 'thin', {'active': isactive}]">这是一个邪恶的H1</h1>

```

  1. 直接使用对象

```

<h1 :class="{red:true, italic:true, active:true, thin:true}">这是一个邪恶的H1</h1>

```

2.使用内联样式

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

```

<h1 :style="{color: 'red', 'font-size': '40px'}">这是一个善良的H1</h1>

```

2. 将样式对象,定义到 `data` 中,并直接引用到 `:style` 中

+ 在data上定义样式:

```

data: {

h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' }

}

```

+ 在元素中,通过属性绑定的形式,将样式对象应用到元素中:

```

<h1 :style="h1StyleObj">这是一个善良的H1</h1>

```

3. 在 `:style` 中通过数组,引用多个 `data` 上的样式对象

+ 在data上定义样式:

```

data: {

h1StyleObj: { color: 'red', 'font-size': '40px', 'font-weight': '200' },

h1StyleObj2: { fontStyle: 'italic' }

}

```

+ 在元素中,通过属性绑定的形式,将样式对象应用到元素中:

```

<h1 :style="[h1StyleObj, h1StyleObj2]">这是一个善良的H1</h1>

```

十一、v-for中指令四种使用方式和v-key、v-show的使用

Vue指令之`v-for`和`key`属性

1. 迭代数组

```

<ul>

<li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>

</ul>

```

2. 迭代对象中的属性

``

<!-- 循环遍历对象身上的属性 -->

<div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>

```

3. 迭代数字

``

<p v-for="i in 10">这是第 {{i}} 个P标签</p>

```

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

.2.0+ 的版本里,**当在组件中使用** v-for 时,key 现在是必须的。

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

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

vue _DAY1的更多相关文章

  1. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  2. wepack+sass+vue 入门教程(三)

    十一.安装sass文件转换为css需要的相关依赖包 npm install --save-dev sass-loader style-loader css-loader loader的作用是辅助web ...

  3. wepack+sass+vue 入门教程(二)

    六.新建webpack配置文件 webpack.config.js 文件整体框架内容如下,后续会详细说明每个配置项的配置 webpack.config.js直接放在项目demo目录下 module.e ...

  4. wepack+sass+vue 入门教程(一)

    一.安装node.js node.js是基础,必须先安装.而且最新版的node.js,已经集成了npm. 下载地址 node安装,一路按默认即可. 二.全局安装webpack npm install ...

  5. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  6. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

  7. 关于Vue.js 2.0 的 Vuex 2.0,你需要更新的知识库

    应用结构 实际上,Vuex 在怎么组织你的代码结构上面没有任何限制,相反,它强制规定了一系列高级的原则: 应用级的状态集中放在 store 中. 改变状态的唯一方式是提交mutations,这是个同步 ...

  8. Vue.js 2.0 和 React、Augular等其他框架的全方位对比

    引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  10. 初探Vue

    Vue.js(读音/vju:/,类似于view),是近来比较火的前端框架,但一直没有怎么具体了解.实现过,就知道个啥的MVVM啦,数据驱动啦,等这些关于Vue的虚概念. 由于最近,小生在公司中,负责开 ...

随机推荐

  1. jmeter进行websocket 通信

    最近项目弄了基于websocket的通信接口,所以需要做一个websocket的接口压测. jmeter当前自带的插件无法进行jmeter接口的通信,所以 本人是下载的一套jar包插件,进行的安装 1 ...

  2. HUAWEI--配置单臂路由

    HUAWEI--配置单臂路由 1.在LSW1中创建vlan10和vlan20 [LSW1]vlan batch 10 20 2.接口Eth0/0/2配置trunk,放行vlan10和20,接口Eth0 ...

  3. 安全测试-WEB安全渗透测试基础知识(五)

    1.5. 代码审计 1.5.1. 简介 代码审计是找到应用缺陷的过程.其通常有白盒.黑盒.灰盒等方式.白盒指通过对源代码的分析找到应用缺陷,黑盒通常不涉及到源代码,多使用模糊测试的方式,而灰盒则是黑白 ...

  4. Django 初步运行过程分析笔记

    2. django运行过程分析第一个过程分析:django启动过程python mangage.py runserver 0.0.0.0:8000这个命令先被python的sys.argv接收起来,保 ...

  5. xxx.app 已损坏,无法打开,你应该将它移到废纸篓/打不开 xxx,因为它来自身份不明的开发者解决方法

    xxx已损坏,无法打开,你应该将它移到废纸篓解决办法 打不开 xxx,因为它来自身份不明的开发者 打不开xxxx,因为 Apple 无法检查其是否包含恶意软件 在安装的时候提示加载失败! 解决: 打开 ...

  6. tool/js - ChineseToPinyin 汉语转拼音

    tool/js - ChineseToPinyin 汉语转拼音 Convert_Pinyin.js js如何简单实现汉字转成拼音的功能 pinyin-pro 官网 npm npm 安装 npm ins ...

  7. (jmeter笔记) websocket接口测试

    1.在进程选择WebSocket Sampler 2.Websocket Sampler 界面 webserver Server Name or IP:输入连接的websocket服务器ip Port ...

  8. node 内存全局配置(--max-old-space-size)

    安装完了node和angular之后,使用powershell 窗口进行 ng build --prod打包,会提示内存溢出:JavaScript heap out of memory. 项目内打包解 ...

  9. 利用拉格朗日乘子法从最优化问题中推导出KKT条件

    优化问题的一般形式 在优化问题中,我们将其一般形式定义为有约束(不等式约束.等式约束)的最小化优化问题,其具体定义如下: \[\begin{array}{ll} \min _{x} & f_{ ...

  10. springboot外部部署官方文档说明复制版

    官方文档地址为: https://docs.spring.io/spring-boot/docs/2.1.6.RELEASE/reference/htmlsingle/#boot-features-e ...