---恢复内容开始---

一、对比其他框架

1、react:

共同点:

  • 使用 Virtual DOM
  • 提供了响应式(Reactive)和组件化(Composable)的视图组件。
  • 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
  • react路由使用redux,vue也用了类似的vuex

不同点:

  • vue更轻量级,react社区更强大
  • vue自动获得了 shouldComponentUpdate避免重复渲染
  • 在处理动画时,Vue 每秒最高处理 10 帧,而 React 每秒最高处理不到 1 帧(由于 React 有大量的检查机制,这会让它提供许多有用的警告和错误提示信息。我们同样认为这些是很重要的,但是我们在实现这些检查时,也更加密切地关注了性能方面)。
  • react的jsx使一切都变为js,vue仍使用template(也支持jsx),这会更易读,易迁移
  • Vue 可以让你在每个单文件组件中完全访问 CSS

scoped 属性会自动添加一个唯一的属性(比如 data-v-21e5b78)为组件内 CSS 指定作用域,编译的时候.list-container:hover 会被编译成类似 .list-container[data-v-21e5b78]:hover

  • vue-cli和create-react-app都包含了webpack,但Vue 支持 Yeoman-like 定制

2、angular1

相同点:

  • 写法与ng几乎相同

不同点:

  • 更灵活,也更简单
  • 在 Vue 中指令和组件分得更清晰
  • Vue 有更好的性能,并且非常非常容易优化,因为它不使用脏检查,vue使用基于依赖追踪的观察系统并且异步队列更新,所有的数据变化都是独立触发,除非它们之间有明确的依赖关系。和ng2中解决watcher过多办法一致。

3、angular2

  • ng2基于ts开发, ts静态类型检查在大规模的应用中非常有用,但中型项目不合适

二、使用

1、hello world

---恢复内容结束---

一、对比其他框架

1、react:

共同点:

  • 使用 Virtual DOM
  • 提供了响应式(Reactive)和组件化(Composable)的视图组件。
  • 将注意力集中保持在核心库,而将其他功能如路由和全局状态管理交给相关的库。
  • react路由使用redux,vue也用了类似的vuex

不同点:

  • vue更轻量级,react社区更强大
  • vue自动获得了 shouldComponentUpdate避免重复渲染
  • 在处理动画时,Vue 每秒最高处理 10 帧,而 React 每秒最高处理不到 1 帧(由于 React 有大量的检查机制,这会让它提供许多有用的警告和错误提示信息。我们同样认为这些是很重要的,但是我们在实现这些检查时,也更加密切地关注了性能方面)。
  • react的jsx使一切都变为js,vue仍使用template(也支持jsx),这会更易读,易迁移
  • Vue 可以让你在每个单文件组件中完全访问 CSS

scoped 属性会自动添加一个唯一的属性(比如 data-v-21e5b78)为组件内 CSS 指定作用域,编译的时候.list-container:hover 会被编译成类似 .list-container[data-v-21e5b78]:hover

  • vue-cli和create-react-app都包含了webpack,但Vue 支持 Yeoman-like 定制

2、angular1

相同点:

  • 写法与ng几乎相同

不同点:

  • 更灵活,也更简单
  • 在 Vue 中指令和组件分得更清晰
  • Vue 有更好的性能,并且非常非常容易优化,因为它不使用脏检查,vue使用基于依赖追踪的观察系统并且异步队列更新,所有的数据变化都是独立触发,除非它们之间有明确的依赖关系。和ng2中解决watcher过多办法一致。

3、angular2

  • ng2基于ts开发, ts静态类型检查在大规模的应用中非常有用,但中型项目不合适

二、使用

1、hello world

2、绑定dom元素

3、v-on

4、组件注册

5、props组件接收属性

可以使用 v-bind 指令将待办项传到每一个重复的组件中

三、vue实例

1、构造器

组件构造器

2、构造函数的对象与data对象相互作用

3、$前缀:与构造函数中名称区分

4、没有控制器概念,逻辑放在生命周期钩子中

如 mounted、 updated 、destroyed

四、模板语法

1、vue底层将html编译为虚拟dom,也支持直接在render中写jsx

2、v-html中可以存放拼接模板,但不安全

3、使用js表达式

4、过滤器

只能在这两个地方使用

5、缩写

五、计算属性

1、模板表达式中需表达复杂逻辑时使用  计算属性

  

reversedMessage就是计算属性,且依赖message

2、计算属性 vs methods

methods没有缓存机制,不管message是否改变,都执行函数,计算属性如果message不变,不会重新执行函数

3、computed vs watched

  

4、计算setter

运行 vm.fullName = 'John Doe' 时, setter 会被调用, vm.firstName 和 vm.lastName 也相应地会被更新。

5、watch:停止等待输入完毕

使用 watch 选项允许我们执行异步操作(访问一个 API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这是计算属性无法做到的。

<script src="https://unpkg.com/axios@0.12.0/dist/axios.min.js"></script>
<script src="https://unpkg.com/lodash@4.13.1/lodash.min.js"></script>
<script>
var watchExampleVM = new Vue({
el: '#watch-example',
data: {
question: '',
answer: 'I cannot give you an answer until you ask a question!'
},
watch: {
  // 如果 question 发生改变,这个函数就会运行
question: function (newQuestion) {
this.answer = 'Waiting for you to stop typing...'
this.getAnswer()
}
},
methods: {
  // _.debounce 是一个通过 lodash 限制操作频率的函数。
  // 在这个例子中,我们希望限制访问yesno.wtf/api的频率
  // ajax请求直到用户输入完毕才会发出
  // 学习更多关于 _.debounce function (and its cousin
// _.throttle), 参考: https://lodash.com/docs#debounce
getAnswer: _.debounce(
function () {
var vm = this
if (this.question.indexOf('?') === -1) {
vm.answer = 'Questions usually contain a question mark. ;-)'
return
}
vm.answer = 'Thinking...'
axios.get('https://yesno.wtf/api')
.then(function (response) {
vm.answer = _.capitalize(response.data.answer)
})
.catch(function (error) {
vm.answer = 'Error! Could not reach the API. ' + error
})
},
// 这是我们为用户停止输入等待的毫秒数
500
)
}
})
</script>
 
六、class与style绑定
1、v-bind:class:同ng-class
表示 classactive 的更新将取决于数据属性 isActive 是否为真值 。

我们也可以在对象中传入更多属性用来动态切换多个 class 。此外, v-bind:class 指令可以与普通的 class 属性共存。
       

页可以这样写

 

也可以在这里绑定返回对象的计算属性

 

2、v-bind:style绑定内联样式

七、条件渲染

1、v-if

2、v-if条件组

八、列表渲染

1、v-for

持一个可选的第二个参数为当前项的索引。

  

2、整数迭代

3、key

九、事件处理v-on

1、基本使用

 

十、表单控制 v-model

1、基本使用

2、单选框

3、复选框

4、单选按钮

5、单选列表

6、多选列表

 
 

前端学习历程--vue的更多相关文章

  1. 前端学习历程--js--原型&闭包

    一.数据类型 1.值类型:undefined, number, string, boolean,不是对象 2.引用类型:函数.数组.对象.null.new Number(10)都是对象 3.引用类型判 ...

  2. 前端学习日记-vue cli3.0环境搭建

    卸载老版本的 vue-cli : npm uninstall vue-cli -g 安装新版本的 : npm install -g @vue/cli --安装新版本cli 同时nodeJS 要更新至 ...

  3. 前端学习历程--http与https

    一.CA(证书授权中心)证书 1.ca是通信的中介,具有足够的权威性 2.信任可嵌套如:C 信任 A1,A1 信任 A2,A2 信任 A3 二.根本区别 1.https需要基于ssl的ca证书认证(判 ...

  4. web前端学习历程--跨域问题

    一.同源策略 一个页面的ajax只能获取这个页面相同源(协议.域名.端口号都必须相同)的数据. 二.jsonp方法 1.json和jsonp JSON(JavaScript Object Notati ...

  5. web前端学习历程--排序

    一.js排序方法 1.按字母顺序排列: arr.sort() 2.按数值从小到大: function sortNumber(a,b)//排序函数 { return a - b } var arr = ...

  6. 前端学习历程--js事件监听

    一.事件监听使用场景 1.事件触发多个方法的时候,后一个方法会把前一个方法覆盖掉. window.onload = function(){  var btn = document.getElement ...

  7. 前端学习历程--localstroge

    一. localstorage的特性 1.需要ie8+ 2.浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3.local ...

  8. 前端学习历程--css①

    ---恢复内容开始--- 本文用自己的理解,总结网上或者自身经历的问题,加以汇总,方便查找: 一.浏览器默认样式 1.浏览器处理css&html a.css作用范围:盒子模式.浮动.定位.背景 ...

  9. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

随机推荐

  1. Angularjs 跨域请求

    不知道什么意思修改了service 参考http://blog.csdn.net/hj7jay/article/details/51767805 http://blog.csdn.net/tangsl ...

  2. 使php支持pdo_mysql

    1.下载pdo_mysql包 wget https://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz 2.追加编译php,使其module目录下生产pdo_mysql.so ...

  3. DWM1000 定位上位机软件 以及 源码下载

    蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: 经过一段学习,今天终于将定位软件编译成功,简单修改,可以正确读取串口的数据了. 主要修改点: 1 官方 ...

  4. NOIP-Cantor表

    题目描述 现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的.他是用下面这一张表来证明这一命题的: 我们以Z字形给上表的每一项编号.第一项是1/1,然后是1/2,2/1,3/1,2 ...

  5. jQuery (02) 重点知识点总结

    jQuery 如果用户未登录,当加入购物车,会将商品相关信息存入 cookie 或者 session,这两个都是可以标识用户信息的东西 是一个 JavaScript 库,封装了常用的开发功能,和一些需 ...

  6. [LeetCode] Friends Of Appropriate Ages 适合年龄段的朋友

    Some people will make friend requests. The list of their ages is given and ages[i] is the age of the ...

  7. Java课程课后作业190309之连续最大子数组

    老师在课堂是提出了这个问题,并且提出了时间复杂度是O(n)的要求,一开始我自己思想简单,在逻辑上出现了十分粗心的错误,后来同学们也在课堂上比较激烈地讨论了一番,也只是将时间复杂度降到了O(n*n),在 ...

  8. Nestjs 微服务

    文档 工作示例 安装: $ npm i --save @nestjs/microservices main.ts import { NestFactory } from '@nestjs/core'; ...

  9. vue菜鸟从业记:没准备好的面试,那叫尬聊

    最近我的朋友王小闰参加了一场面试,在他填写简历表的时候,排在他前面的应聘者正在旁边邻桌接受来自面试官的检验. 王小闰边写边想,这不就是一会儿要面试自己的前端leader么,现在面试官提问的一些面试题会 ...

  10. Hadoop-2.9.2单机版安装(伪分布式模式)(一)

    一.环境 硬件:虚拟机VMware.win7 操作系统:Centos-7 64位 主机名: hadoopServerOne 安装用户:root软件:jdk1.8.0_181.Hadoop-2.9.2 ...