vue.js基础总结

版权声明: https://blog.csdn.net/weixin_41849462/article/details/82959673

表达式:

  • 使用前要先引入文件vue.js;
  • 要创建vue实例对象,工厂模式的应用el/element、data/object、metnods、computed、watch
  • el作用的范围:全局vue实例;
  • 差值表达式{{ }}  简单数据类型simple data type(string、number、boolean)、复杂数据类型complex(array、object、function);

常用指令:

  • v-on、简写 @ :事件绑定;
  • v-bind 简写 :属性绑定;
  • v-model :双向数据绑定(适用于input、select、textarea);
  • v-html:渲染html内容;
  • v-text:纯文本输出;
  • v-once:一次渲染,可以帮助提升页面性能;
  • vue中所包含的事件,大多数都与原生类似,任何事件都会传递一个对象,该对象时event,需要注意它的形参及实参实参可以是event/$event;
  • 阻止默认事件 :return false、event.preventDefault
  • 阻止事件冒泡:event.stopPropagation();/event.cancleBubble = true;
  • vue中事件的修饰符:stop、prevent、space、enter、del;
  • vue在html中进行事件的绑定:1.代码清晰 2.无需手动绑定  3.对象删除,方法自动销毁;
  • DOM:三目运算、变量显示、方法调用、属性计算、对象监控;

vue中的样式:

  •  class:v-bind:class进行动态样式绑定(可以绑定object-->键名是类名,键值是布尔值,也可以绑定data设置)
  •  style:v-bind:style进行动态样式绑定(驼峰式写法 、json object -->js object)普通样式“”引入,多样式数组处理

语法:

  • v-if(templete模板应用,忽略templete标签的应用)、v-else-if、v-else、v-show、v-for(1.数组【元素、下标】2.对象               【键名、键值、下标】3.:key 作用-->唯一值/在虚拟DOM中能够快速找到该对象/性能的提升);

vue实例对象的生命周期(lifecycle):

  • beforeCreate/created-->beforeMount/mounted-->beforeUpdate/updated-->beforeDestroy/dastroyed;

vue组件化开发:

  1. 将data全局化,并且设置为vue的data属性,会发现全局的data与this.$data相等;
  2. 可以设置ref(reference)本地参考对象,类似于id的操作;
  3. 先实例化一个vue对象,里面设置templete内容这时候是没有加载到dom上的,通过$mount实现对象的加载操                       作,加载到指定元素上。
  4. 要实现代码的高度重用,需要考虑到temponent组件化开发,可以通过Vue.component实现全局组件的注册操                      作,(注意:需要在vue实例化之前定义)。

vue的CLI(commond line interface 命令行接口):

  •      全局安装vue-cli命令: npm i vue-cli -g;
  •      创建一个vue项目命令: vue init webpack-simple(要使用的vue templete) vueProjectName(项目名称)
  •      运行vue项目命令:npm run dev 
  •      打包文件命令:npm run build

vue项目目录结构:

  •     src:assert-->静态资源目录、Vue.app-->主组件、main.js-->入口文件;
  •     .babelrc:语法转换配置文件(es6、7转es5);
  •     indel.html:主页面;
  •     package.json:依赖配置文件;
  •     webpack.config.js:webpack配置文件(1.入口配置 2.出口设置 3.加载器使用【sass-loader、less-loader、vue-loader、 
  •     css-loader、style-loader、file-loader、...】 4.外部插件管理);

vue组件关系:

    父与子:1.父组件绑定属性(String、Number、Array、Object、Function...)

                   2.子组件属性接收(props进行接收                                      array/object);

    子与父:回调模式-->1.父组件绑定函数 ;

                                      2.子组件接收并触发函数;

                                      3.传递参数到父组件的函数中 ;

                                      4.再由父组件进行data修改;

                  emit模式-->1.子组件中进行$emit数据发射;

                                    2.父组件进行事件的监听,并接收event事件对象的内容 ;

                                    3.通过event事件对象内容修改data数据;

    非父子:公交总线模式-->1.创建一个vue实例,并且该实例与原vue实例处于同级并列关系  ;

                                             2.那么所有组件与该实例就处于上下级关系 ;

                                             3.在某组件中进行$emit事件发射,发射到bus总线的vue实例中去 ;

                                             4.想要接收并操作数据的组件进行事件的监听,并接收event事件对象;

  vue中slot插槽:

  •     slot可以将标签中的内容进行插槽式显示;
  •     也可以利用slot name的方式指定显示slot的内容;
  •     如果不给slot定义name,那么就是默认的slot显示;
  •     也可以在子组件中定义slot的默认值,如果父组件有传值,那么就显示传递值,否则就显示slot默认值;
  •     component可以实现动态组件加载;绑定属性是:  is;
  •     可以利用keep-alive将加载的组件保持状态;
  •     组建的钩子函数新增 activated/deactivated;

  vue动画:

  1.     css动画:transition(transition、animation)、appear、type、mode(in-out、out-in)、animate.css(库)、transition-group;
  2.     js动画:不是钩子函数,而是事件绑定、el、done;

  vue指令:

    Vue.directive(directives)、指令的钩子函数-->bind(el、binding、vnode、oldVnode)、inserted、bindUpdate、                    updated、unbind;

  vue过滤:

    Vue.filter:

  •             第一个参数是过滤的对象;
  •             第二个参数才是函数中的第一个参数;
  •             通过 | (管道符)进行连接;
  •             可以多个过滤进行操作,但需要注意数据的类型;

    filters-->mixins-->代码的混入操作;

  vue中的http:

  •     fetch:1. get  2.post(headers;数据一般是字符串,不是对象)  3.put   4.delete ;
  •     vue-axios: 1.原理:axios  2.利用vue对axios进行二次封装 3.先安装,再引入,后使用;

  vue中的表单:

  1.     v-model:v-bind+v-on ;
  2.     textarea:style ,white-space:pre (换行)
  3.     自定义组件:v-model(子组件中接收props:['value'];;子组件向父组件中传递this.$emit('input',value);)

  vue中的路由:

  •     vue中路由设置流程:1.模块安装  2.路由配置  3.入口文件修改  4.路由模块引入  5.静态路由表引入  6.实例化路由模块  7.实例      化vue对象并将路由对象引入进去  8.设置route-view进行占位;
  •     路由的激活状态:actice-class(当前激活)、exact(确切的,准确跳转、高亮) ;
  •     路由的嵌套:childern ;
  •     通过字符串拼接可以实现route-link的跳转;
  •     通过路由中的name设置,也可以实现路由的跳转;
  •     类似于slot的name,在路由中可以将conponent转成components,也就是多个路由模块的设置(router-view中就可以利用 name进行指定模块的显示);
  •     重定向:-->redirect    *是模糊重定向;
  •     路由的动画处理:transition;
  •     路由的滚动行为:scrollBehavior 、和锚点是关系的;
  •     路由的钩子函数:
  1.              在组件中设置路由的钩子函数 -->beforeRouteEnter/beforeRouteLeave;
  2.              在路由中设置路由的钩子函数-->beforeEnter/beforeLeave   不要写route,因为已经在route中;
  3.              在main.js中设置路由的钩子函数-->router.beforeEach   全局所有路由的监控;

    路由的懒加载:

             resolve、require、ensure、

             将所有模块定义成整体模块进行模块的懒加载。

    

  

猜你喜欢

转载自blog.csdn.net/weixin_41849462/article/details/82959673