摘要:只要数据发生改变,立即更新,由表单等带来的数据改变,数据相应字段也会发生相应改变。三界面的更新的输入,导致的值更新,元素内,任何表达式与有关的,都将重新计算,斌企鹅自动更新界面。作为组件化思维的先驱当年统计的组件多达多个。
Vue 是现在最火的前端JavaScript 开发框架。
首先,接受它的思想
View 模板即html,静态界面
Model 数据源 模型 界面所有的数据负责提供及管理
Vue 负责将view 及 Model结合起来。
{{message}}
id为app的一段html 即模板,里面有一个{{message}}表达式等待被填充 {{}} 两个大括号即Vue 表达式
var exampleData = { message:"Hello World!" } exampleData模型 提供了view 需要的数据message vue 做什么呢? 告知双方,View 的Model 在哪里, Model 为哪个view服务 new Vue({ el:"#app", data:exampleData })
实例化一个Vue 配置参数 el指向html 元素
data参数指向数据
**MVVM
Model View ViewMode(vue,el,data)**
数据绑定是vue 最核心 也是最酷的一个能力。
我们可以将html 与数据绑定起来。 只要数据发生改变,html(view)立即更新,html由form表单等带来的数据改变,数据相应字段也会发生相应改变。即V-model
一 viewmodel关联
el:"#app",data:{message:"hello world!"}
div#app{{message}}表达式就会显示数据模型model里的message的值 Hello world!
二 数据绑定
v-model将input 和 message绑在了一起,任何一方的改变都会影响彼此
比如:刚开始,message的值为hello world input value显示为hello world! 数据绑定了 input显示message的值
接着 input用户输入,value 发生了改变,通知数据message更新他的值,双向互通。
三 界面的更新
input的输入,导致message的值更新,#app元素内,任何表达式与message有关的,都将重新计算,斌企鹅自动更新界面。
所以,
{{message}}
会显示出实时与input输入的值一样。指令 绑定在html元素上,类似于属性的特殊命令,用于增强html的能力
v-if 表达式,true 则输出 false 不输出,页面上不会输出其html
v-model 双向数据绑定指令 主要用于form 表单,input 输入值会传给数据更新,数据更新会直接在界面数据上反映。
v-show 与v-if 一样 接受一个boolean 值得表达式,但不一样的地方
不管真心急啊都会在页面上输出,只是style display:none 而已。
MVVM核心做的是数据驱动的界面,如果数据是数组怎么办?
v-for 负责循环输出数据到模板上,item in items
循环的数组是 items 当前的对象是item
在循环中item对象的所有属性都可以使用item.property调用。
items 来自于vue 实例的data数据源
v-on指定 事件监听指令
v-on:event_type="function_name"
在vue 实例里有一个methods API 专门用于提供各种方法,
供html调用
v-for=“(index,n) in 4”
循环指令,执行 4次
index 当前的下标,n为当前的数字
v-bind:class="{on:(tab==index)}"
简写:class
属性绑定指令,动态属性输出
比如.activ,.on
on:(tab == index)
on是要输出的类名,是常量,:右边是表达式,如果为真
则输出左边的类,
数据驱动的属性绑定 改变tab的值就可以,让第几个tab有on 这个类
v-on:mouseover = "setCurrent()"
添加DOM 事件监听
methods:{ setCurrent:function(index) { this.tab = index; } }
component 组件
组件化思维是mvvm 最重要的思想,可以让网页像搭积木一样的来开发。
react 作为组件化思维的先驱 facebook 当年统计的组件多达5w多个。
优点是:
1 复用 组件化开发的过程就是一个选取组件拼装的过程
2 易维护 一个组件过时了或者有新的需求直接下架(可拔插)
3 协作 一个开发者负责自己的一些组件
组件化开发适合大型应用
组件语法
//定义一个组件名为my component Vue.component("my-component",{ //template 属性 组件的html template:" A custom component!" })
定义在vue实例化之前
Vue.component("组件名称",option)
template 属性是基本属性,用于设置组建的模板,即view
data,methods 等等,其实它跟Vue实例一样,具有那些复杂的功能
表现
组件的名字 可以像自定义的html元素一样,插入html文档,扩展html的功能
本质上组件就是一堆html代码的集合,除了html之外,还有数据集交互逻辑,让这个组件变得功能强大.
原本的html太简单 功能太贫瘠。
优点:使用的直观性
组件时属于实例的 也可能是属于其他组件的。
父组件,子组件。。。 组件之间有关系
组件最后通过自定义html的形式挂到vue实例上去 或父组件上去
components 属性 子组件的集合,
语法是一个json对象
var vm = new Vue({ el:"#app", data:{ }, components:{ "my-component":Child } })
my-component 是我们给组件取的别名,html内插入的就是这个名字
Child是我们的组件。
组件内数据的声明 与vue 实例数据的声明有些不同,必须为函数
data:function(){ return{ message:"hello" } }
return 返回一个json 对象
filter 过滤去
在开发中 经常有这样的需求 数据库中存放的是原始数据,离我们显示的需求,还差那么一点点。
或者是数据需要整个容,换个形式,filter负责
数据在 | 管道 后将由一个函数来化妆
组件或者实例中 有一个属性filters 里面放置filter函数在vue2.0以前 默认提供一些常用的过滤器,比如capitalize sortBy
Vue 2.0以后需要自行定义。
可以自行定义,数据最后显示的方式。
声明周期函数
组件有他的声明周期,即创建前后,销毁前后
在配置选项中有一些预定义的生命周期函数钩子,就在相应的周期那一刻会触发。
比如经常会在组件加载完成后,发起数据请求ajax
放在created 方法中
在组件销毁前解绑数据源。
v-html 指令用途:用于将数据显示为html而不是字符串
Ajax
异步无刷新 网页技术,通常用于浏览器JavaScript 主动向
后端请求数据 并实时更新界面的操作中
Ajax 工程师 RIA富互联网应用开发工程师
传统请求 同步
HTTP 请求的过程
网友在浏览地址里输入url请求后,解析DNS IP地址找到网页所在的服务器。
通知服务器,需要这个页面的html
服务器收到请求指令后,去数据库里取出数据,动态渲染html模板,最后通过与网友的连接
,将网页字符串发送给浏览器,我们就看到网页了
Ajax 异步请求
与同步请求不同,Ajax 是在网页已经渲染,跟服务器断开连接后,客户端JavaScript 通过用户点击事件(换一批)鼠标滚动(下一页)主动向服务器端请求数据
而且并不是一直等待结果再执行,而是在服务器端接到指令后,完成运算由服务器端异步的调用callback来继续 执行页面逻辑{动态DOM操作}
服务器成功执行,调用callback,
失败,调用error 不会刷新页面的就是ajax
一 浏览器原生的异步请求对象 XMLHttpRequest
XML 数据的格式 现在主要是JSON
HttpRequest javascript 发出http请求的能力
流程
1 打开请求,这是并没有真正发送请求 而是去做了http握手
xhr.open("GET",URL);
URL 是服务器端提供给你取数据的地址,是预定好的。
服务端只需要根据前端的需求,准备好数据,并在预定的地址(URL),
以JSON的格式返回给用户即可
2 定义回调
xhr.onload = function() { xhr.responseText; }
xhr 请求后服务器端返回的数据,会异步赛道xhr.responseText属性里面。
JSON.parse()将返回数据变成json 对象
xhr.send()真正发送请求
xhr的优点在于,带来了web2.0革命,传统了的请求,页面是静态的,死板的
而xhr时代的页面是动态的,富交互的,
$.getJSON(url,params,function(data){ }); $.post(url,params,function(data){ });
平时我们不会去直接用XMLHttpRequest
input radio 切换后,ajax 的数据操作由watch 方法来负责
watch:{ propertypeName:"函数名" }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/80274.html
摘要:开篇从今天起,小肆将和大家从头开始做一个完整的实战项目。关注技术放肆聊跟小肆一起行动起来在这个项目中,小肆力争做到以下几点应用目前最新的技术,并随时间更新。 开篇 从今天起,小肆将和大家从头开始做一个完整的实战项目。其中遇到的每个知识点都是我们工作中常见的,这些知识点大多在网上都能找到但却没有哪个教程能都讲得到,那就由小肆来做吧。 关注技术放肆聊,跟小肆一起行动起来! 在这个项目中,小...
摘要:更多资源请文章转自月份前端资源分享的作用数组元素随机化排序算法实现学习笔记数组随机排序个变态题解析上个变态题解析下中的数字前端开发笔记本过目不忘正则表达式聊一聊前端存储那些事儿一键分享到各种写给刚入门的前端工程师的前后端交互指南物联网世界的 更多资源请Star:https://github.com/maidishike... 文章转自:https://github.com/jsfr...
阅读 2413·2021-11-22 13:53
阅读 1108·2021-09-22 16:06
阅读 1325·2021-09-02 15:21
阅读 1859·2019-08-30 15:55
阅读 3096·2019-08-29 11:19
阅读 1893·2019-08-26 13:23
阅读 905·2019-08-23 18:23
阅读 1725·2019-08-23 16:06