做国内学历公证的网站,郑州网站设计收费,东莞市seo网络推广哪家好,wordpress数字链接出现404Vue
前端框架#xff0c;免除原生JS中的DOM操作简化书写 #xff08;以前学过又忘了#xff0c;现在才知道原来vue是前端的#xff09; 基于MVVM思想#xff08;model-view -viewModel#xff09;实现数据双向绑定 model是数据模型 view负责数据展示 即DOM 中间这个负责…Vue
前端框架免除原生JS中的DOM操作简化书写 以前学过又忘了现在才知道原来vue是前端的 基于MVVM思想model-view -viewModel实现数据双向绑定 model是数据模型 view负责数据展示 即DOM 中间这个负责二者监听和绑定 详细使用讲解 VueJS简明教程(一)之基本使用方法
新建Vue对象
1.引用vue.js 在桌面建立一个 Vue.html文件, 然后引入 vue.js的CDN地址 script srchttps://cdn.jsdelivr.net/npm/vue2.5.16/dist/vue.js/script2.新建Vue实例 html:
div idfirstVue{{messages}}/divJS:
script typetext/javascriptvar myVue new Vue({// myVue 就是Vue创建的一个对象可以理解成把div idfirstVue/div和这个标签里面包含的所有DOM都实例化成了一个JS对象 这个对象就是myVueel:#firstVue,//el是Vue的保留字用来指定实例化的DOM的ID号, #firstVue这句话就是标签选择器告诉Vue要实例化ID“firstVue”的这个标签。data:{// data参数用来绑定VUE实例的数据变量每个不同变量之间用逗号分隔上面我们绑定了自定义变量my_data并赋初值testmessage:test,}})
/script数据绑定
v-bind:是用来绑定数据的v-on:则是用来绑定事件的比如我要绑定一个的 click事件就这么写
div idfirstVue v-bind:hiddenmy_hidden{{my_data}}/div
a v-bind:hrefurl链接/avar myVue new Vue({el:#firstVue,data:{my_data: test,my_hidden: hidden,url:www.baidu.com,}
})v-bind:不仅可以绑定hidden属性disabled属性style属性, color属性凡是标签有的属性都可以通过这个方法进行绑定 v-bind由于经常会用到所以也可以缩写成冒号:hiddenmy_hidden
事件绑定
v-on:是用来绑定事件的
div{{my_data}}/div
button v-on:clickclickButton()Click Me/buttonvar myVue new Vue({el:#firstVue,data:{my_data: test,my_hidden: hidden},methods:{clickButton:function(){this.my_data Wow! Im changed!//引用的是这个vue实例里的局部变量,用this //如果不加this系统会默认你想引用的是一个全局变量}}
})v-on:语法同样有一个缩写比如v-on:clickclickButton就等价于clickclickButton
表单控件绑定
从DOM中实时获取用户输入的数据赋值给vue实例 v-model 通过两步实现了数据反向传递 第一步绑定了DOM标签的input事件(比如叫tapInput()) 第二步当用户进行输入时候触发tapInput()函数tapInput()函数内部读取此DOM标签的Value值赋值给vue实例 通过以上两步v-model语法糖实现了vue数据的反向传输
!DOCTYPE html
html
headtitleVue Demo/titlescript srchttps://cdn.jsdelivr.net/npm/vue2.5.16/dist/vue.js/script
/head
bodydiv idfirstVueinput typetext v-modelmy_data /button v-on:clickclickButtonClick Me/buttonp{{my_data}}/p/div
/body
script typetext/javascriptvar myVue new Vue({el:#firstVue,data:{my_data: test,my_hidden: hidden},methods:{clickButton:function(){//在input输入框输入值的时候v-model会实时将最新值(value)赋值给vue实例的my_data变量而my_data变量又将实时展现在p标签中this.my_data Wow! Im changed!}}})
/script
/htmlv-model.number后面的这个.number的意思是说在返回my_step值的时候自动转换成integer类型因为默认是string类型所以要多这么一句。
组件
组件(Component)是Vue最强大的功能之一。组件可以扩展HTML元素封装可重用的代码。在较高层面上组件是自定义元素Vue的编译器为它添加特殊功能。 在有些情况下组件也可以表现为用is特性进行了扩展的原生HTML元素。 所有的Vue组件同时也都是Vue的实例所以可以接受相同的选项对象除了一些根级特有的选项并提供相同的生命周期钩子。 div idfirstVuebutton-demoClick/button-demo
/divVue.component(button-demo,{template:buttonHello here!/button
})
通过Vue注册一个叫做’button-demo’的组件这个自定义组件是由Hello here!组成的。 即注册了’button-demo’以后就等价于Hello here!
VUE组件对相当于一个VUE实例在组件内可以定义方法数据甚至可以引用其他组件
//定义button-counter组件
Vue.component(button-counter,{//定义数据data:function(){//一个组件的 data 选项必须是一个函数因此每个实例可以维护一份被返回对象的独立的拷贝return {count: 0}},//定义方法methods:{clickAdd: function(){this.count}},template:button clickclickAddYou clicked me {{count}} times/button})全局、局部组件
上面我们注册的是全局组件也就是在整个VUE根实例中注册的也可以理解为调用了VUE的静态方法注册的这样注册的组件是可以在任何VUE实例中使用的。 局部组件注册就允许用户把自定义组件的作用域限制在父级VUE实例中
div idappcomponent-a/component-a
/div//component-a是一个全局组件
Vue.component(component-a,{template:divp这里是全局组件/pcomponent-b/component-b/div,//使用components在父组件中注册局部组件components:{component-b: {template:button这是一个局部组件/button},}
})
new Vue({el: #app
})在component-a组件里使用了关键字components注册了一个局部组件component-b并且嵌入了component-a的模板语法中。
v-if/v-show
v-if和v-show的区别 v-if是删除dom元素直接不渲染可以搭配v-else 和v-else-if使用 v-show是控制CSS隐藏元素通过display:none p v-ifage 18青少年/pp v-else-ifage 60青年人/pp v-else老人/pv-for
1、遍历数组 v-for“(item,index) in arr” 2、遍历对象 v-for“(value,key,index) in obj” 3、遍历数字 v-for“num in 10” 4、key关键字 提高重排顺序 只能是数字或字符串必须是唯一的 v-for(item,index) in arr:key‘item.id’
div v-for(index,item) in addrs{{index}}:{{item}}/divscriptlet vm new Vue({el:#app,data:{addrs:[aa,bb],obj:{name:小花,age:18,sex:女,}},methods:{},})
/script
生命周期
详细见https://blog.csdn.net/m0_58709145/article/details/127393144 指一个对象从创建到销毁的过程。 每触发一个生命周期时间会自动执行一个生命周期方法钩子。 4个阶段8个生命周期 1.初始化阶段: beforeCreate实例刚创建完成,此时还没有data和methods属性 createdvue实例data和method属性已经初始化完成,此时还没有编译模板从这个地方可以请求接口获取数据等信息
2.实例挂载阶段 beforeMount挂载前 模板编译完成,此时e l 还 没 有 挂 载 , el还没有挂载data目前可见 mounted挂载完成后 模板编译完成,$el挂载完成
3.数据更新阶段 这里选择性执行获取数据更新完成执行updated数据更新时执行beforeUpdate beforeUpdate 数据更新时执行,data数据此时已经是最新的数据,UI界面还是旧的 updated数据更新完成后,界面和data里的数据此时都是最新的,完成的界面的更新渲染render
4.销毁阶段 销毁前: beforeDestroy 组件准备销毁,此时data和methods方法都能用没有完全销毁 销毁后:destroyed 组件已经被销毁此组件在浏览器中对应的DOM接口已被完全移除
mounted[只用到这个]
发送请求到服务端来获取服务端的数据
在这里插入代码片new Vue({el:#app,data:{},method:{},mounted():{console.log(Vue挂载完成发送请求获取数据);}.
})流程【还没理解】
创建一个Vue实例也就是 new Vue()的时候首先函数会执行init函数在init函数中会执行beforeCreated钩子函数。beforeCreated在此之前会先执行mergeOptions函数得到$options选项并且把这个设置成VUE实例的一个属性。所以在这个阶段init已经执行所以千万不要去修改data的数据否则可能会出现数据无法监听的状况。在这个阶段数据没有监听也没有绑定到VUE实例上面也没有挂载对象 当beforecreated执行完之后当injections注射和reactivity反射的时候会执行created。在这个阶段数据已经绑定到实例上面但是还没有挂载对象。
当created之后它会去判断instance实例里面是否含有 ‘el’ 这个option选项如果没有它会调用vm. m o u n t ( e l ) 这个方法然后执行下一步 , 意味着它会停止编译生命周期结束如果有的话直接执行下一步。之后会判断是否含有 t e m p l a t e 这个属性如果有的话它会把 t e m p l a t e 解析成一个 r e n d e r f u n c t i o n 这是一个 t e m p l a t e 编译的过程结果是解析成了一个 r e n d e r 函数如果没有 t e m p l a t e 选项它会把外部的 H T M L 作为模板编译 t e m p l a t e 模板优先级高于 o u t e r H T M L 。 e n d e r 函数选项 t e m p l a t e 选项 o u t e r H T M L . 。 b e f o r e M o u n t e d 只会在有了 r e n d e r f u n c t i o n 之后才会执行当执行完 r e n d e r f u n c t i o n 之后才会调用 M o u n t e d 。可以看到此时是给 v u e 实例对象添加 mount(el) 这个方法然后执行下一步,意味着它会停止编译生命周期结束如果有的话直接执行下一步。之后会判断是否含有template这个属性如果有的话它会把template解析成一个render function这是一个template 编译的过程结果是解析成了一个render函数如果没有template选项它会把外部的HTML作为模板编译template模板优先级高于outer HTML。ender函数选项 template选项 outer HTML.。beforeMounted只会在有了render function之后才会执行当执行完render function之后才会调用Mounted。可以看到此时是给vue实例对象添加 mount(el)这个方法然后执行下一步,意味着它会停止编译生命周期结束如果有的话直接执行下一步。之后会判断是否含有template这个属性如果有的话它会把template解析成一个renderfunction这是一个template编译的过程结果是解析成了一个render函数如果没有template选项它会把外部的HTML作为模板编译template模板优先级高于outerHTML。ender函数选项template选项outerHTML.。beforeMounted只会在有了renderfunction之后才会执行当执行完renderfunction之后才会调用Mounted。可以看到此时是给vue实例对象添加el成员并且替换掉挂在的DOM元素。因为在之前console中打印的结果可以看到beforeMount之前el上还是undefined。可以看出来在mounted之前渲染的DOM还没有挂载到页面内。当在Mounted挂载完之后这个流程才会执行完。
其他的生命周期需要其他触发条件比如当页面内data发生改变会调用beforeUpdate然后经过virtual DOM最后到Updated更新完毕。当组件被销毁的时候会调用beforeDestory,以及destory。
beforeDestroy钩子函数在实例销毁之前调用。在这一步实例仍然完全可用。 destroyed钩子函数在Vue 实例销毁后调用。调用后Vue 实例指示的所有东西都会解绑定所有的事件监听器会被移除所有的子实例也会被销毁 文章转载自: http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn http://www.morning.nxstj.cn.gov.cn.nxstj.cn http://www.morning.fbccx.cn.gov.cn.fbccx.cn http://www.morning.tktyh.cn.gov.cn.tktyh.cn http://www.morning.rdmn.cn.gov.cn.rdmn.cn http://www.morning.zrlwl.cn.gov.cn.zrlwl.cn http://www.morning.skdhm.cn.gov.cn.skdhm.cn http://www.morning.kjfqf.cn.gov.cn.kjfqf.cn http://www.morning.pghgq.cn.gov.cn.pghgq.cn http://www.morning.mdjtk.cn.gov.cn.mdjtk.cn http://www.morning.llyjx.cn.gov.cn.llyjx.cn http://www.morning.wmcng.cn.gov.cn.wmcng.cn http://www.morning.dbxss.cn.gov.cn.dbxss.cn http://www.morning.ztmnr.cn.gov.cn.ztmnr.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.srwny.cn.gov.cn.srwny.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.fjscr.cn.gov.cn.fjscr.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.ymwrs.cn.gov.cn.ymwrs.cn http://www.morning.zpkfb.cn.gov.cn.zpkfb.cn http://www.morning.qwbtr.cn.gov.cn.qwbtr.cn http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn http://www.morning.tqldj.cn.gov.cn.tqldj.cn http://www.morning.qdlnw.cn.gov.cn.qdlnw.cn http://www.morning.qbwbs.cn.gov.cn.qbwbs.cn http://www.morning.sqnxk.cn.gov.cn.sqnxk.cn http://www.morning.yxkyl.cn.gov.cn.yxkyl.cn http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.srbfz.cn.gov.cn.srbfz.cn http://www.morning.xczyj.cn.gov.cn.xczyj.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.bmts.cn.gov.cn.bmts.cn http://www.morning.hrzymy.com.gov.cn.hrzymy.com http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn http://www.morning.bhqlj.cn.gov.cn.bhqlj.cn http://www.morning.yjprj.cn.gov.cn.yjprj.cn http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn http://www.morning.pdxqk.cn.gov.cn.pdxqk.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.pqyms.cn.gov.cn.pqyms.cn http://www.morning.xuejitest.com.gov.cn.xuejitest.com http://www.morning.ccphj.cn.gov.cn.ccphj.cn http://www.morning.fkcjs.cn.gov.cn.fkcjs.cn http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn http://www.morning.yhxhq.cn.gov.cn.yhxhq.cn http://www.morning.bssjp.cn.gov.cn.bssjp.cn http://www.morning.dkslm.cn.gov.cn.dkslm.cn http://www.morning.krklj.cn.gov.cn.krklj.cn http://www.morning.kdhrf.cn.gov.cn.kdhrf.cn http://www.morning.rhdln.cn.gov.cn.rhdln.cn http://www.morning.nkdmd.cn.gov.cn.nkdmd.cn http://www.morning.zymgs.cn.gov.cn.zymgs.cn http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn http://www.morning.zdbfl.cn.gov.cn.zdbfl.cn http://www.morning.bkryb.cn.gov.cn.bkryb.cn http://www.morning.kfbth.cn.gov.cn.kfbth.cn http://www.morning.xskbr.cn.gov.cn.xskbr.cn http://www.morning.qkgwz.cn.gov.cn.qkgwz.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.wtcd.cn.gov.cn.wtcd.cn http://www.morning.zyslyq.cn.gov.cn.zyslyq.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.sggzr.cn.gov.cn.sggzr.cn http://www.morning.bhmnp.cn.gov.cn.bhmnp.cn http://www.morning.jwlmm.cn.gov.cn.jwlmm.cn http://www.morning.qfdmh.cn.gov.cn.qfdmh.cn http://www.morning.ywxln.cn.gov.cn.ywxln.cn http://www.morning.pphgl.cn.gov.cn.pphgl.cn http://www.morning.kwcnf.cn.gov.cn.kwcnf.cn http://www.morning.xbckm.cn.gov.cn.xbckm.cn http://www.morning.nrfqd.cn.gov.cn.nrfqd.cn http://www.morning.ctswj.cn.gov.cn.ctswj.cn http://www.morning.pjxlg.cn.gov.cn.pjxlg.cn http://www.morning.bpmth.cn.gov.cn.bpmth.cn http://www.morning.pfnlc.cn.gov.cn.pfnlc.cn http://www.morning.hrtwt.cn.gov.cn.hrtwt.cn