当前位置: 首页 > Web前端 > vue.js

vue介绍

时间:2023-03-31 16:37:53 vue.js

历史vue的作者是Yuxi,发布于2014年,是一个拥有大量用户的前端框架。该框架有以下优点:JS框架简化了DOM操作响应式数据驱动视图框架和库jquery库的区别:->DOM+请求框架:功能齐全的肯德基世界:该库相当于一个封装框架,即相当于一个全家桶代码不同:一般使用库的代码是调用库的某个函数,我们控制它库的代码一般使用框架,它的框架帮助我们运行我们的代码已经写好了1.初始化我们自己的行为2.执行你写的代码3.释放一些资源。在相应文件位置打开终端的方式,执行:cnpmivue其他方式见官方文档2.启动varapp=newVue({el:destination,template:templatecontent,data})注1:当模板没有内容时,调用目标,否则调用模板。模板优先级高于el挂载注2:当模板有多个元素时,必须有一个根元素注3:组件中,data必须返回一个函数,函数返回一个对象插值表达式{{expression公式的内容}}可以是:对象(不要连续使用3个{}),布尔值,字符串,三元表达式注意:对象中的语句必须在数据函数中返回varapp2=newVue({el:"#app",data(){return{msg:"我是第一个VUE练习作业",isshow:true}},template:`

{{msg}}
{{{'name':'jack'}}}
{{isshow}}
{{"isshow"}}
{{isshow?"Valueistrue":"false"}}
`,});instructions是什么概念:对于data+pages更方便的输出,这个操作叫做instructions,用v-xxx表示,vue中常用的v-instructionv-text元素的innerText必须是标签上的doublelabel,与{{}}类似,但此替换是完全替换。如果只需要替换部分,直接使用{{}}v-html元素的innerHtml(必须有根标签)v-if判断是否插入这个元素,相当于元素的销毁和创建语法:v-if=string,当data中声明string的值为true时,相当于H5中appendChild的值为false时,相当于H5中的removeChild。还可以使用v-show结合v-elseifv-else隐藏和显示元素,为元素样式添加显示。基于css样式的switch语法:v-show=characterString,当data中声明string的值为true时,相当于H5中的div.style.display='block'。当值为false时,相当于H5v-if和v-sh中的div.style.display='none'ow和v-if的区别是惰性的,只有满足条件时才会渲染v-show,不管条件为真还是假总结:v-if有更高的切换开销,v-show有更高的初始渲染开销v-for使用循环遍历数组或对象语法:v-for="(item,indexinarrs)"v-for优先级高于v-if,v-show,v-text,v-htmlvarapp=newVue({el:"#app",template:`
点我试试哈哈哈
我来了
`,data(){return{msg:"ThisIt'satest",msg2:`

这是一个v-html测试

`,isShow:false,items:[{name:"applejuice",price:10},{name:"tomatojuice",price:12}]}},methods:{changeBtn(){this.isShow=!this.isShow;}}})inv-fory使用v-for遍历数组,挂载组件,更改数据并重新渲染页面以引用loadsh的_.shuffle打乱数组的顺序并通过npm下载到这里:$npmi-gnpm$npmi--savelodashhtml页面介绍:注意使用_.shuffle方法时,待洗牌的数组必须接受返回的结果函数,如下:this.objs=_.shuffle(this.objs);绑定键的值是数组中的id值,不是数组的索引示例:了解虚拟DOM和diff算法虚拟dom的诞生,不要直接操作dom元素,操作数据会重新渲染页面,hide背后的原理是让它高效的diff算法。它的核心是基于两个简单的假设:1.两个相同的组件产生相似的DOM结构,不同的组件产生不同的DOM结构。2.同级节点通过唯一id区分diff示意图:当一个节点发生变化时,diff算法只会比较同级节点。如果节点类型不同,直接kill掉之前的节点,创建并插入一个新的节点,如果是同一类型则不再比较该节点之后的子节点。节点的属性会被重置,从而实现节点的更新。当某一层有很多相同的节点,即列表节点时,diff算法更新过程的默认情况是遵循上述原则。使用v-bind给元素属性赋值可以给原生标签属性(value,class,id...)赋值也可以给自定义属性赋值语法:v-bind:propertyname="constant|variable"简写::propertyname="variablename"(也可以是对象{})单向数据绑定:data===>view本例中数据驱动视图变化,isShow数据内容变化,触发视图中类名的变化(当isShow为true时,active插入{active:isShow}),从而改变界面风格,varapp=newVue({el:"#app",template:`
给你点颜色
点我尝试`,data(){return{msg:"Thisisatest",op:"op",isShow:falsed}},methods:{//this指向模板changeColor(){this.isShow=!this.isShow;}}})单向数据流图:v-on绑定事件语法:v-on:nativejs事件名='逻辑'或'方法名'缩写:@nativejs事件名='逻辑'或'方法名'注意:方法名必须定义在方法中v-model只有表单控件才能实现双向数据绑定V-model只适用于有Value的控件。UI控件v-model是双向数据绑定的语法糖。详见下图:自定义实现双向数据绑定原理v-bind绑定value属性v-on绑定输入事件实现数据变化更新数据值,数据值变化视图图解:v-model渲染原理定义v-model和v-bind的属性区别v-model双向数据绑定v-bind单向数据绑定