VUE 1.0
现代开发模式:vue/react。 20%的时间花在了表现层
传统开发模式:jquery。 80%的时间花在了表现层
MVC——数据、表现、行为分离
视图层(表现层)<----->数据层
MVC、MVP、MVVM
vue的核心是数据,vue是典型的MVVM结构
前台渲染 vs 后台渲染
前台渲染好处:降低服务器负担、带宽压力小、用户体验好、
后台渲染好处:SEO更好、兼容性更好、安全性更高
指令(directive)——补充了html的属性
v-bind(简写为:):向html属性里面输出东西,可以用于任何属性,有两个属性有另外的写法:class、style。这两个属性可以用数组以及json。
v-model:数据双向绑定。只要用于输入组件(input,...),数据(data)和input之间双向绑定。
通过v-model进来的数据都是字符串。
v-text和v-html:一个是转义输出一个是非转义输出
v-text比较少用,直接输出html代码;v-html是innerHTML;
v-on:eg:v-on:click="fn()",()可以不加东西
v-on的简称是@,@click="fn()"。
事件修饰符:
@click.stop = 'fn()'——阻止冒泡
@click.once = 'fn()'——单次事件
@click.prevent = 'fn()'——阻止默认事件
@click.native——原生事件(组件)
@keydown.enter——筛选按键 .keycode|name|
@keydown.ctrl.enter——组合按键
@self
@capture
v-show 只是显示隐藏,控制元素的display
v-if 会删除这个元素
v-for
1.循环数组 v-for="item,index in array"
2.循环json v-for="val,key in json"
3.循环字符串 v-for="char,index in str"
4.循环数字 v-for="i in num"
跟for密切联系的:key
虚拟dom——json
:key属性(跟虚拟dom有巨大的关系)
1.key属性不能重复(唯一)
2.key属性不能改变
v-pre——预编译
提高性能
放置意外的解析
v-cloak
渲染未完成时不显示vue代码,*[v-cloak]{display:none}
1.vm结构
new Vue({
el,data,methods,
computed,props,watch,template,router,.......
})
2.概念
数据同步
双向绑定
虚拟DOM
3.指令
双向绑定:
<script> let el = document.getElementById('div1'); let template = el.innerHTML; let _data = { name:'blue', age:, } let data = new Proxy(_data,{ set(obj,name,value){ obj[name]=value; console.log(`有人试图设置${name}=>${value}`); render(); }, get(){ }, }); render(); function render(){ //渲染 el.innerHTML = template.replace(/\{\{\w+\}}/g,str=>{ str = str.substring(,str.length-); return _data[str]; }) //找所有的v-model Array.from(el.getElementBysTagName('input')) .filter(ele=>ele.getAttribute('v-model')) .forEach(input=>{ let name = input.getAttribute('v-model'); input.value = _data[name]; input.oninput = function(){ data[name] = this.value; }; }); } </script>
虚拟DOM:
合并请求,快速查询,局部刷新
computed——计算属性
1.缓存——性能
2.方便——可读可写,属性的形式
<div id="div1">{{a}}+{{b}}={{sum}}</div> let vm = new Vue({
el:'#div1',
data:{ a:, b, },
computed:{
sum(){ return this.a+this.b; }
}
})
<div id="div1">
姓:<input type="text" v-model="familyName"><br>
名:<input type="text" v-model="givenName"><br>
<input type="text" v-model="name">
</div>
let vm = new Vue({
el:'#div1',
data:{ familyName:'张',givenName:‘三’ },
computed:{
name:{
get(){ return this.familyName+this.givenName; },
set(value){
this.familyName=value[0];
this.familyName=value.substring(1);
}
}
}
})
watch——监听(适合做搜索栏下拉提示选项)
vue-router
1.路由容器 <router-view></router-view>
2.路由表 let router = new VuewRouter( {path,component}, {path,component}, {path,component},.....)
3.添加到vm对象 new Vue({ el,data,...,router:router })
router-view 容器
router-link a标签
数据交互
组件
VUE 1.0的更多相关文章
- 使用 Vue 2.0 实现服务端渲染的 HackerNews
Vue 2.0 支持服务端渲染 (SSR),并且是流式的,可以做组件级的缓存,这使得极速渲染成为可能.同时, 和 2.0 也都能够配合 SSR 提供同构路由和客户端 state hydration.v ...
- 新手入门指导:Vue 2.0 的建议学习顺序
起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...
- vue 2.0 无法编译ES6语法
# vue2.0 webpack 无法编译 ES6 语法 之前在使用 vue 1.x 时用 vue-loader@8.0.0 版本可以正常打包vue的代码,包括ES6语法也能正常转为ES5语法,但是当 ...
- Vue 2.0初学后个人总结及分享
摘要:最近在上海找工作,发现Vue前景还不错,于是就打算先学习一下(之前了解过,但是一直没提到日程上)这篇随笔当是为了自己学习之后,做一个小的阶段性总结.希望本文的内容对于刚开始接触vue的朋友们有点 ...
- 《vue.js2.0从入门到放弃》学习之路
原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...
- Vue 2.0基础语法:系统指令
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. Vue初体验 新建一个空的项目,引入vue.js文件.写如下代码: &l ...
- vue 2.0 路由切换以及组件缓存源代码重点难点分析
摘要 关于vue 2.0源代码分析,已经有不少文档分析功能代码段比如watcher,history,vnode等,但没有一个是分析重点难点的,没有一个是分析大命题的,比如执行router.push之后 ...
- vue-calendar 基于 vue 2.0 开发的轻量,高性能日历组件
vue-calendar-component 基于 vue 2.0 开发的轻量,高性能日历组件 占用内存小,性能好,样式好看,可扩展性强 原生 js 开发,没引入第三方库 Why Github 上很多 ...
- vue cli3.0 结合echarts3.0和地图的使用方法
echarts 提供了直观,交互丰富,可高度个性化定制的数据可视化图表.而vue更合适操纵数据. 最近一直忙着搬家,就没有更新博客,今天抽出空来写一篇关于vue和echarts的博客.下面是结合地图的 ...
- Vue 1.0 和 2.0 执行顺序
// Vue 生命周期 // Vue 1.0 // 执行步骤:选项/生命周期钩子 // 1 init // 2 created // 3 beforeCompile // 4 compiled // ...
随机推荐
- winform中的Windows Media Player播放器设置
namespace WindowsMediaPlayer{ public partial class Form1 : Form { Form2 form2;//声明from2窗体 public For ...
- 【转载】从头到尾彻底理解KMP
转自:http://blog.csdn.net/v_july_v/article/details/7041827 从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月 ...
- vundle
vundle插件的使用方法: http://adam8157.info/blog/2011/12/use-vundle-to-manage-vim-plugins http://adam8157.in ...
- JVM基本讲解
1.数据类型 java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:它代表的值就是数值本身,而引用类型的变量保存引用值. “引用值”代表了某个对象的引用,而不是对 ...
- Dubbo 节点telnet测试
Dubbo 节点telnet测试 本地安装telnet客户端 Telnet 服务地址 端口 如telnet 127.0.0.1 1234 出现此对话框表示连接成功 输入status –l 会显 ...
- 利用简易爬虫完成一道基础CTF题
利用简易爬虫完成一道基础CTF题 声明:本文主要写给新手,侧重于表现使用爬虫爬取页面并提交数据的大致过程,所以没有对一些东西解释的很详细,比如表单,post,get方法,感兴趣的可以私信或评论给我.如 ...
- Nginx数据结构之散列表
1. 散列表(即哈希表概念) 散列表是根据元素的关键码值而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录, 以加快查找速度.这个映射函数 f 叫做散列方法,存放记录的数 ...
- html5验证自适应
// 移动端跳转 var OS = function() { var a = navigator.userAgent, b = /(?:Android)/.test(a), d = /(?:Firef ...
- UML建模综述
一.概念 UML-Unified Model Language 统一建模语言,又称标准建模语言.是用来对软件密集系统进行可视化建模的一种语言.作为一个支持模型化和软件系统开发的图形化语言,UML为软件 ...
- Docker的镜像制作与整套项目一键打包部署
Dockerfile常用指令介绍 指令 描述 FROM 构建的新镜像是基于哪个镜像.例如:FROM centos:6 MAINTAINER 镜像维护者姓名或邮箱地址.例如:MAINTAINER Mr. ...