vue

VUE生命周期的理解

為{幸葍}努か 提交于 2020-02-22 03:52:22
Vue有一套完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程,都属于Vue的生命周期。Vue实例从创建到销毁的过程,就像一条生命的生老病死的过程,就是Vue的生命周期。 每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。 实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据

vue-生命周期

て烟熏妆下的殇ゞ 提交于 2020-02-22 03:51:51
###1.生命周期图    ###2.vue生命周期分三大阶段: 提供的可操作钩子函数     初始化显示:  beforeCreate / created             beforeMount / 挂载(发送ajax请求/定时器):mounted     更新:     beforeUpdate / updated     死亡:     死亡之前:beforeDestory ()/ 死亡之后:destoryed()      过程:   1.实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作   2.挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取   3.接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会

vue笔记

假如想象 提交于 2020-02-22 03:51:09
vue生命周期   每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。 实例、组件通过new Vue() 创建出来之后会初始化事件和生命周期,然后就会执行beforeCreate钩子函数,这个时候,数据还没有挂载呢,只是一个空壳,无法访问到数据和真实的dom,一般不做操作 挂载数据,绑定事件等等,然后执行created函数,这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数,在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染,然后执行beforeMount钩子函数,在这个函数中虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始render,渲染出真实dom,然后执行mounted钩子函数,此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom等事情... 当组件或实例的数据更改之后,会立即执行beforeUpdate

vue爬坑之路2----vue实例

限于喜欢 提交于 2020-02-22 03:31:34
构造器   每个vue.js应用都是通过构造函数Vue穿件一个Vue的根实例启动的:   var vm = new Vue({ //选项 })   在实例化Vue时,需要传入一个选项对象,他可以包含数据,模板,挂在元素,方法,生命周期钩子等选项。   vue构造器是可扩展的,实际上,所有的vue.js组件其实都是被扩展的vue实例。     var MyComponent = Vue.extend({         //扩展选项     })     //所有的’MyComponent'实例都将以预定义的扩展选项被创建     var myComponentInstance = new MyComponent(); 属性与方法   每个Vue实例都会代理七data对象里所有的属性:     var data = {a:1};     var vm = new Vue({       data:data     });     vm.a===data.a;// ->true       //设置属性也会影响到原始数据     vm.a = 2;     data.a ;// ->2          //反之亦然     data.a = 3;     vm.a; //->3   注意只有这些被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。  

Vue.js开始学习,部分记录笔记。

孤者浪人 提交于 2020-02-22 02:31:04
学习——前戏: 0. 安装vue-cli前,先安装Node.js, 因为vue-cli 安装是给予npm(包管理工具)来进行安装的, npm:全称为:‘Node Package Manager’,是一个基于‘Node.js’的包管理器,也是整个‘Node.js’社区最流行、支持的第三方模块最多的包管理器。 webpack 是 JavaScript 打包器(module bundler) 在使用 Vue 时,我们推荐在你的浏览器上安装 Vue Devtools。它允许你在一个更友好的界面中审查和调试 Vue 应用 1.创建一个Vue应用 有两个重要部分组成:视图+脚本 //视图代码部分 <div id="app"> { { message } } { { name } } </div> //两对大括号代表成为模板,用来进行数据的绑定显示在页面中 //脚本代码 var app = new Vue( { el: '#app', //"el" 指定关联的选择器 data: { // "data" 用于存储数据 message : 'Hello Vue!' , name : "Vue" //对视图中声明的变量进行初始化 } } ) ; 2.数据与方法 //一个Vue实例 var vm=new Vue( { data: { } } ) 3.生命周期 自己去搜索那张流程图 4.模板语法-插值

vue-router 简介

笑着哭i 提交于 2020-02-22 00:54:07
3.Vue Router简介 它是一个Vue.js官方提供的路由管理器。是一个功能更加强大的前端路由器,推荐使用。 Vue Router和Vue.js非常契合,可以一起方便的实现SPA(single page web application,单页应用程序)应用程序的开发。 Vue Router依赖于Vue,所以需要先引入Vue,再引入Vue Router Vue Router的特性: 支持H5历史模式或者hash模式 支持嵌套路由 支持路由参数 支持编程式路由 支持命名路由 支持路由导航守卫 支持路由过渡动画特效 支持路由懒加载 支持路由滚动行为 来源: CSDN 作者: weixin_小白菜 链接: https://blog.csdn.net/weixin_45677987/article/details/104435489

vue自定义组件v-model

送分小仙女□ 提交于 2020-02-21 18:55:18
   一个组件上的`v-model`默认会利用名为`value`的prop(属性)和名为input的事件,但是像单选框、复选框等类型的输入控件可能会将`value`特性用于不同的目的。这时候我们可以在定义组件的时候,通过设置`model`选项可以用来实现不同的处理方式。   在创建组件的时候,添加`model`属性,其中要包含两个属性配置,分别是: event:什么时候触发v-model行为 prop:定义传递给v-model的那个变量,绑定到哪个属性值上 下面是实现计数器作用的代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="https://cdn.jsdelivr.net/npm/vue"></script> <title>vue自定义组件v-model</title> </head> <body> <div id="app"> <Stepper v-model="goodsCount"></Stepper> </div> <script> Vue.component('Stepper', { props: ['count'],

Vue兄弟组件之间的传值

谁都会走 提交于 2020-02-21 18:53:58
Vue父子组件之间的传值我们会了之后,兄弟组件怎么传值呢 第一种思路是 子传父,父传子 第二种思路是 建立一个中转站 这里主要说第二种思路 首先新建一个js文件bus.js,我这里建在了assets下 bus.js里面写出如下代码 import Vue from 'Vue' export default new Vue; 然后在 子组件a 中传递参数给bus.js <template> <div @click="change">子组件a</div> </template> <script> import Bus from '@/assets/js/bus.js' //一定要引入 export default { data(){ isTrue:true }, methods:{ change(){ this.isShow = !this.isShow; //改变布尔的值 Bus.$emit("change",this.isShow); //将改变之后的值通过自定义方法change传给中转站 //Bus.$emit("handle",value1,value2...); //可以传多个值 } } } </script> 然后在 子组件b 中接受兄弟组件传过来的值 created(){ // 子组件b通过自定义方法change接收子组件a传过来的值 Bus.$on("change",

【Vue】value值如何通过{{}}获取?答:【:value=\"item.value\"】或者【v-bind:value=\"item.value\"】

淺唱寂寞╮ 提交于 2020-02-21 17:48:56
var historyList = new Vue({ el: '#historyList', data: { items: [ //{text:'3000吨以下',value:'0-3000'}, //{text:'5000吨 至 1.0w吨',value:'5000-10000'}, //{text:'55吨 至 88吨',value:'55-88'} ] } }) <ul id="historyList" > <li v-for="item in items" class="tonList"> <input type="checkbox" :value="item.value"/> <label>{{item.text}}</label> </li> </ul> function getHistory() { var data = localStorage.getItem('tonnage_history'); if (data != '' && data != null) { // dataTextAndValue {3000吨 至 5000吨,5000吨 至 1.0w吨,4吨 至 8吨:3000-5000,5000-10000,4-8} var dataTextAndValue = data.split(':'); // dataText [3000吨 至 5000吨

如何解决Vue axios请求,浏览器跨域问题

给你一囗甜甜゛ 提交于 2020-02-21 17:42:23
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="js/vue.js"></script> <script src="js/axios.min.js"></script> <script> window.onload=function(){ new Vue({ el:'#itany', methods:{ send(){ axios({ method:'get', url:'/VUE/day02/user.josn', data:{ firstName: 'Fred', lastName: 'Flintstone' } }).then(function(resp){ console.log(resp); }).catch(function(resp){ console.log(); }); }, sendGet(){ axios.get('sever.php?name=tom&age=23') .then(resp=>{ console.log(1); }).catch(err=>{ console.log(2); }); } } }); } </script> </head> <body> <div id="itany">