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

前端开发Vue学习笔记分享

时间:2023-03-31 16:02:09 vue.js

Vue.js开发前端开发行业发展的很快,大部分学习者跟不上开发的速度,每天都在学习Google的AngularJS,Facebook的ReactJS,这些前端-端MVC(MVVM)框架和组件学习,加上Vue.js的出现,越来越多的前端投入学习。Vue.js是一个用于开发web界面的前端库,轻量级,具有响应式编程和组件化的特点。helloworld引入vue.js//使用CDN方式通过NPM安装:npminstallvue示例:

{{message}}

varvm=newVue({el:'#app',data:{message:'helloworld,我是掘金哪吒'}})特点:数据绑定在浏览器控制台vm.message='hellovue',输出结果为hellovue,说明vm.message在视图中绑定了{{message}}。绑定用户输入的数据,view会随着用户的输入而变化"message">
vm.message的值会随着用户在input中输入的值而变化,而不用我们手动获取DOM元素的值再同步到js。特点:组件化可以自己定义html标签,在模板中使用示例:
命令行工具:$npminstall--globalvue-cli$vueinitwebpackmy-project$cdmy-project$npminstall$npmrundevVueinstancevue.js的使用是通过构造函数Vue({option})创建一个vue实例:varvm=newVue({})。Vue实例相当于MVVM模式中的ViewModel。示意图如下:实例化时,可以传入一个选项对象(数据、模板、挂载元素、方法、生命周期钩子)等。模板el类型为字符串、DOM元素或函数,以及它的功能是为实例提供挂载元素。对于前端训练,一般来说,我们会使用css选择器或者原生DOM元素。例如:el:'#app',如果指定了el,实例将立即进入编译过程。模板类型是一个字符串。默认情况下,模板值会替换挂载元素和el值对应的元素,挂载元素和模板根节点的属性会合并。数据可以通过datavue实例中的data属性来定义,这些数据可以在实例对应的模板中进行绑定和使用。示例:vardata={a:1}varvm=newVue({data:data})vm.$data===data//truevm.a===data.a//truevm.a=2data.a//2data.a=3vm.a//3在模板中使用{{a}}输出vm.a的值,修改vm.a的值,模板中的值会随之变化,称为响应式数据.组件类型的实例可以通过props获取数据,和数据一样,在初始化的时候也需要预先设置。varmyComponent=Vue.component("my-component",{props:['title','content'],template:'

{{title}}

{{content}}

'})方法定义在methods对象中,例子:dadaqianduannewVue({el:'#app',data:{a:1},methods:{daBtn:function(){console.log(this.a);}}});生命周期beforeCreate,在实例开始初始化时同步调用。此时,数据观测、事件等还没有初始化。created,创建实例后调用,此时数据绑定和事件方法已经完成,但是DOM编译还没有开始,也就是还没有挂载到文档中。beforeMount,在挂载之前运行。mounted,在编译结束时调用,此时所有指令已经生效,数据变化可以触发DOM更新,但不保证$el已经插入到文档中。beforeDestroy,实例开始销毁时调用。destroyed,在实例销毁后调用,此时所有的绑定和实例指令都已经解除绑定,子实例也被销毁。updated,实例挂载后,再次更新实例,更新DOM结构。activated,需要和动态组件keep-live属性一起使用,该方法在动态组件初始渲染时调用。文本插值数据绑定的基本形式是文本插值,使用{{}},也就是Mustache语法:hello{{name}}单插值:{{name}}HTML属性示例:
绑定表达式放置在Mustache标记内的文本内容称为绑定表达式。每个绑定只能包含一个表达式,不支持JavaScript语句,不支持正则表达式。FilterVue允许在表达式后添加可选的过滤器,用管道符“|”表示,多个过滤器可以链式使用:{{time|paramsTime}}computedpropertyvarvm=newVue({el:'#app',data:{firstName:'da',lastName:'Nezha',}computed:{fullName:function(){//这个指向vm实例返回this.firstName+''+this.lastName}}});

{{firstName}}

{{lastName}}

{{fullName}}

Setter示例:varvm=newVue({el:'#el',data:{num:100,}computed:{price:{set:function(newValue){this.num=newValue*100;},get:function(){return(this.num/100).toFixed(2);}}}});表单控件输入框示例:dadaqianduan{{message}}表单跑马灯示例:

{{性别}}

复选框,单选框和多选框打大前段{{checked}}多个复选框,v-model使用相同的属性名,属性为数组: