vue2.X基础知识

vue2.X基础知识点

1.vue的优点

​ 渐进式:学一点,用一点,不用把vue全家桶里面所有的知识都学完才开发项目,后期的话我们学的越多就可以使用vue的全家桶(vue,vue-router,vuex)来进行开发。

​ 数据驱动,响应式开发:只需要修改数据,就可以自动更新渲染视图。

​ 双向数据绑定:表单里面输入数据,自动同步数据到data中

​ 体积非常小,压缩以后,这个vue的库只有20kb,

​ 性能高:不操作dom,vue自带虚拟dom,vue的底层会自动帮我们操作dom,比我们操作dom的性能要高

​ 生态非常繁荣:配套的周边的资源非常丰富:仓库(vuex),路由库(vue-router),配套的ui库非常丰富(element系列,vant系列,antd)

2.脚手架的区别

​ @vue/cli 与vue-cli

​ 区别:版本不一样。

​ @vue/cli:可以搭建vue2&vue3的项目

​ 搭建出来的项目,webpack的配置是隐藏起来的,我们要对webpack进行配置,都需要创建一个vue.config.js文件来进行配置

​ vue-cli:可以搭建vue1.0&vue2.0的项目

​ 搭建出来的项目,webpack的配置是被暴露出来的。

3.vue的组件

  • 局部组件

    • 创建组件
    • 引入组件
    • 注册组件
  • 全局组件

    • 创建组件

    • 在main.js引入组件

      // 引入全局组件的示例
      import Father from './components/father.vue'
      
    • 在main.js通过vue.component(组件名,组件实例)

      // 注册全局组件
      Vue.component('Father',Father)
      
    • 运用场景:多次需要使用,需要复用。

4.组件间的通讯

  • 子传父

    • 子组件需要定义好传送的数据

    • 子组件可以通过绑定事件,也可以不绑定事件来传送

    • 子组件通过this.$emit(‘自定义的事件’,传送的数据)

       this.$emit('changeVal',this.msg1)
      
      • 父组件通过v-on绑定子组件传过来的自定义事件转换位自己的事件,在methods里面调用这个事件,通过传一个形参,就可以获取子组件中传过来的数据
      <Son :msg='msg' @changeVal='change'/>
      methods:{
         
          change(val){
         
              console.log(val,111);
              this.msg = val
          }
      }
    
  • 父传子

    • 父组件通过自定义属性传参

       <Son :msg='msg' @changeVal='change'/>
      
      • 子组件通过props接受
     // props:['msg']
            props:{
         
                msg:{
         
                    type:String,   //设置父组件传递过来的数据类型	     String,Number,boolean,null,undefinend,Object,Array
                    require:true,   //设置是否必传,
                    default:'我是默认值哦' //设置默认值
                }
            },
    
  • 中央事件总线

    • 在main.js new一个vue的示例对象,把这个属性对象了挂载在vue的原型上,一般叫$bus

      Vue.prototype.$bus = new Vue()
      
      • 兄弟1组件,可以通过this. b u s . bus. bus.emit(‘自定义事件’,参数)
    this.$bus.$emit('msg',this.msg)    
    
    • 兄弟组件2,可以通过this. b u s . bus. bus.on(‘传递过来的自定义事件’,(val)=>{val就可以获取到兄弟组件1传输过来的数据})
     this.$bus.$on('msg',(item)=>{
         
         console.log(item,2222);
         this.val =item
     })
    
  • vuex

    • vue的状态管理(状态机,仓库),一般运用于大型项目,小型用的比较少,一般用于公用数据存储。
    • 五大属性
      • state
        • state一般用于存储数据的 =》 vue中的data。 取:this.$store.state.要去的数据 =》辅助函数mapState也可以取数据,一般结合computed来一起使用的
      • mutations
        • mutations 修改数据的唯一方法,改&增:this.$store.commit(‘mutations里面定义的函数’,要改&增的数据)=》辅助函数mapMutations ,一般结合methods来一起使用的. 所有的操作都是同步
      • actions
        • 异步操作,操作一些异步的数据,修改数据的话,还是需要调用mutations 里面的commit的方法来修改=》store.commit(‘mutations里面定义的函数’,要改&增的数据).调用action一般使用this.$store.dispatch(‘actions里面定义的方法’,需要传递的数据)=》mapActions,一般结合methods来一起使用的
      • getters
        • vuex的计算属性 == computed, 一定要有返回值 =》辅助函数mapGetters
      • module
        • 仓库的模块化,运用场景:项目模块比较多,都要使用vuex的时候,分模块使用,利于管理

5.动态&表单*

​ 封装一个表单,在不同的表单组件里面都可以使用。

​ 1.封装一个表单的组件,里面所有的数据全部都搞成动态(input,select,radio,checkbox,textarea)通过在父组件中传递的数据,进行v-for循环,然后进行v-if的判断,来进行渲染。获取到表单里面的数据我们通过子传父,传给父组件就行了。

​ 2.在父组件中,把我们需要传递到子组件中的数据封装好,父传子传递过去就行。

6.生命&周期

​ 共11个,其中8个常用的,3个不常用

​ 创建阶段

  • beforeCreate

  • created

    多用于发送请求

    面试题:如何在created里dom.

    答案:this.$nextTick() == vue.nextTick()。

    面试题:请你说说$nexttick的作用

    答案:将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。

    <p ref='app' id="app"/>
    this.$refs.app  == documnet.getElementById('app')
    

    挂载阶段

  • beforeMount

  • mounted

    dom生成,可以操作dom

    更新阶段

  • beforeUpdate

  • updated

    销毁阶段

  • beforeDestory

  • destoryed

    运用场景:项目的性能优化(清除定时器,解绑事件,解绑不必要的全局变量)

7.路由vue-router

  • 路由模式

    • hash(默认模式 ---- 浏览器环境)
      • 底层基于onhashchange
    • history(浏览器环境)
      • 底层基于pushState
      • 缺点:项目打包以后,对页面进行刷新,会报错404. 需要后端对页面进行重定向
    • abstract(node.js环境)
      • 基本不用(了解项)
  • 路由守卫

    • 前置守卫:beforeEach(to,from,next)

      • to:去哪儿
      • from:从哪儿来
      • next:放行
        • next():放行到某个页面
        • next(‘/goods’) 放行到规定的页面(商品),
    • 解析守卫:beforeResolve

    • 后置守卫:afterEach

    • 路由独享守卫:beforeEnter

    • 组件守卫:

       beforeRouteEnter(to, from) {
             
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值