网站建设的意义与目的,那曲地区建设局网站,企业简介如何写,公众号排版设计博主心得#xff1a; keyup必须与change一起使用v-on.click可以直接写成clickclick“setVal”里的setVal换成数字之后有惊喜VS Code是真的狗#xff0c;一些报错根本不会直接显示总结#xff1a;VS code太狗了 1.vue介绍
1.1 什么是vue vue是一个构建用户界面UI的渐进式jav… 博主心得 keyup必须与change一起使用v-on.click可以直接写成clickclick“setVal”里的setVal换成数字之后有惊喜VS Code是真的狗一些报错根本不会直接显示总结VS code太狗了 1.vue介绍
1.1 什么是vue vue是一个构建用户界面UI的渐进式javascript框架渐进式的框架是指可以一步一步的由浅入深的去使用这个框架该框架可以逐步引入项目。作者尤雨溪
vue官网 https://cn.vuejs.org/
1.2 vue的优点
1.体积小 压缩后33k左右体积小意味着下载速度很快。
2.更高的运行效率 基于虚拟dom一种预先通过javascript进行各种计算把最终的DOM操作计算出来并进行优化的技术。所谓虚拟dom指的是对真实dom的一种模拟。相对于直接操作真实dom我们构建一棵虚拟的dom树将各式数据和操作直接应用到这颗虚拟的dom树上然后再虚拟的树修改应用到真实的dom树中有助于减少dom的操作次数带来性能上的提升可以频繁的操作虚拟节点然后一定时刻一次性的同步修改到真实dom节点
3.双向数据绑定 让开发者不用再去操作dom对象把更多精力投入到业务逻辑上来
4.生态丰富学习比较简单 市场上有很多稳定成熟的基于vue的ui框架可以拿来使用实现快速开发。中国人开发的中文资料丰富。
2. 库和框架的区别
2.1 库
本质上是一些函数的集合。每次调用函数实现一个特定的功能接着把控制权交给使用者js中最典型的是jQueryjquery本质上是封装dom操作简化dom操作的工具库
2.2 框架
框架是一套完整的解决方案使用框架是需要遵循框架的规则将代码放入框架的合适位置框架在合适的时候调用代码。代表Vue。一种框架会规定自己的编程方式侵入性较高。
3. MVVM
MVVM一种更好的UI模式解决方案MVVM通过数据双向绑定让数据自动地双向同步
标题 解释 MVVM M-V-VM M Model数据模型json格式的数据 V view视图JSPHTML VM ViewModel视图模型把Model和View关联起来的就是ViewModelViewModel负责把Model的数据同步到View显示出来 还负责把View的修改同步回Model 虽然没有完全遵循MVVM模型Vue的设计无疑受到了它的启发。另外一个js框架“knockout”完全遵循MVVM模型 学习Vue要转化思想“不要在想着怎么操作DOM而是想着如何操作数据”
4. 安装vue
cdn下载需要网络
!-- 开发环境版本包含了有帮助的命令行警告 --
script srchttps://cdn.jsdelivr.net/npm/vue/dist/vue.js/script!-- 生产环境版本优化了尺寸和速度 --
script srchttps://cdn.jsdelivr.net/npm/vue/script手动下载
!-- 开发环境版本包含了有帮助的命令行警告 --
script srcdist/vue.js/script!-- 生产环境版本优化了尺寸和速度 --
script srcdist/vue.min.js/script
CDN加速 CDN的全称是Content Delivery Network即内容分发网络CDN是构建在网络之上的内容分发网络依靠部署在各地的边缘服务器通过中心平台的负载均衡、内容分发、调度等功能模块使用户就近获取所需内容降低网络拥塞提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。CDN加速主要是加速静态资源如网站上面上传的图片、媒体以及引入的一些Js、css等文件。CDN加速需要依靠各个网络节点例如100台CDN服务器分布在全国范围从上海访问会从最近的节点返回资源这是核心。CDN服务器通过缓存或者主动抓取主服务器的内容来实现资源储备。CDN基本原理将源站内容分发至最接近用户的节点使用户可就近取得所需内容提高用户访问的响应速度和成功率。 CDN部署在网络提供商的机房是用户在请求网络服务的时候可以从距离最近的网络提供商机房获取数据。 最大的优势就是可以让用户就近访问资源.
BootCDN BootCDN是Bootstrap中文网支持并维护的前端开源项目免费CDN服务致力于为Bootstrap、jQuery、Angular、Vuejs一样优秀的前端开源项目提供稳定、快速的免费 CDN 加速服务
官网 https://www.bootcdn.cn/
5.开发示例
vue有两种开发方式一种是直接页面开发一种是工程级开发本示例使用的是直接页面开发方式。
5.1 vue实例
每个Vue应用都是通过用Vue构造器创建一个新的Vue实例开始的。 需要给vue指定一个内容管理区通常我们也把它叫做边界这意味着我们接下来的改动全部在指定的div内div外部不受影响。 双花括号叫做插值
div idapph1{{msg}}, {{ts}}/h1
/div
//创建vue实例
var vm new Vue({//指定管理区域el: #app,data: {msg: hello vue}
});可以将div中的id属性改一个名称查看一下信息是否还能正常输出体会一下vue内容管理区的概念还特点。
data属性既可以是一个json对象也可以是一个函数如
var vm new Vue({el: #app,data: function(){return {msg: hello vue,ts: new Date().getTime()}}
});注意data在组件开发中的写法必须是函数。
5.2 绑定事件
vue指令指的是是带有“v-”前缀的特殊属性 vue实例的methods用来定义交互事件使用的函数,函数名不限制 示例
var vm new Vue({el: #app,data: function(){return {msg: hello vue,ts: new Date().getTime()}},//定义交互事件methods: {clickme: function(){console.log(点到我了);}}
});
div idapph1{{msg}}, {{ts}}/h1!-- v-on: vue绑定事件的处理函数的方式 --button v-on:clickclickme()点我试试/button
/div打开开发者工具点击按钮在console中查看点击事件的效果。
5.3 Vue双向数据绑定
双向数据绑定指的是数据的改变会引起dom的改变dom的改变也是引起数据的改变。 示例
div idappinput typetext v-modelmsg keyupchange()button v-on:clicksetVal改变值/button
/div
var vm new Vue({//指定vue实例的管理区域,也叫边界el: #app,data: function() {return {msg: hello vue}},methods: {change: function() {console.log(this.msg);},setVal: function() {this.msg hello hello;}}});打开开发者工具在文本框中输出数据观察console中的输出可以看到数据双向绑定的效果。
注意点
只有当实例被创建时已经在data中存在的属性才是响应式的用v-model指令在表单控件元素上创建双向数据绑定this在methods属性的方法里指向当前Vue实例如果需要外部访问可以使用vm.name/vm.$data.name的方式用v-once指令进行单向绑定一般不用console对象可以使用printf风格的占位符。只支持字符%s、整数%d或%i、浮点数%f和对象%o四种Vue实例还暴露了一些有用的实例属性与方法。它们都有前缀$以便与用户定义的属性区分开来
6. Vue生命周期钩子
生命周期钩子示例已经在资料中提供将demo4.html拷入项目即可。通过该示例了解vue常用的生命周期钩子及其作用。 每个Vue实例在被创建时都要经过一系列的初始化过程——例如需要设置数据监听、编译模板、将实例挂载到DOM并在数据变化时更新DOM等。同时在这个过程中也会运行一些叫做生命周期钩子的函数这给了用户在不同阶段添加自己的代码的机会。
生命周期函数