Skip to content
静心静心
HOME
DoubtfulCases
github icon
  • vue2

    • vue基础
      • vue2基本语法
        • Vue生命周期

      vue2基本功能

      author iconYYtimer icon大约 3 分钟

      此页内容
      • Vue生命周期

      # vue2基本功能

      # Vue生命周期

      # 过滤器

      ​ 1.局部过滤器 在当前组件内部使用过滤器

      ​ 给某些数据 添油加醋

      //声明
      filters:{
          '过滤器的名字':function(val,a,b){
              //a 就是alax ,val就是当前的数据
      	}
      }
      //使用  管道符
      数据 | 过滤器的名字('alex','wusir')
      
      1
      2
      3
      4
      5
      6
      7
      8
      <!DOCTYPE html>
      <html lang="zh-CN">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <meta name="viewport" content="width=device-width, initial-scale=1">
      </head>
      <body>
          <div id="app">
              <App />
          </div>
          <script src="vue.js"></script>
          <script src="moment.js"></script>
          <script>
              let App = {
                  data(){
                      return {
                          msg:"hello world",
                          time:new Date()
                      }
                  },
                  template:`
      
                     <div>我是一个APP  {{ msg | myReverse }}
                      <h2>{{ time | myTime('YYYY-MM-DD')}}</h2>
      
                     </div>
                  `,
                  filters:{
                      myReverse:function (val) {
                          console.log(val);
                          return val.split('').reverse().join('')
                      },
                      //年-月- 日  年- 月
                      myTime:function(val,formatStr){
                          return moment(val).format(formatStr);
                      }
                  }
              }
              new Vue({
                  el:'#app',
                  data(){
                      return {
      
                      }
                  },
                  components:{
                      App
                  }
      
              })
      
          </script>
      </body>
      </html>
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55

      2.全局过滤器 只要过滤器一创建,在任何组件中都能使用 ***

      Vue.filter('过滤器的名字',function(val,a,b){})
      在各个组件中都能使用
      数据 | 过滤器的名字('alex','wusir')
      
      
      1
      2
      3
      4

      # 生命周期的钩子函数

      从生到死

      diff算法

      • beforeCreateopen in new window

      • createdopen in new window 组件创建 ***

        • 虚拟DOM React
        • 发送ajax 获取数据 实现数据驱动视图
      • beforeMountopen in new window

      • mountedopen in new window ***

        • 获取真实DOM
      • beforeUpdateopen in new window

      • updatedopen in new window

      • activatedopen in new window

        • 激活当前组件
      • deactivatedopen in new window

        • keep-alive Vue提供的内置组件,主要作用,让组件产生缓存
        • 停用当前组件
      • beforeDestroyopen in new window

      • destroyed

        • 如果开了定时器,一定要关闭定时器

      # Vue的基本用法

      # 模板语法 关闭掉 django中提供的模板语法
      # 指令系统

      ​ v-text

      ​ v-html

      ​ v-show和v-if

      ​ v-bind和v-on

      ​ v-for

      ​ v-model 双向数据绑定

      # Vue中的常用属性

      ​ data:function(){}

      ​ el

      ​ methods

      ​ watch

      ​ computed

      ​ template

      # Vue的常用方法

      ​ 钩子函数

      # Vue的过滤器

      ​ 局部和全局的过滤器

      # Vue的组件

      ​ 全局组件

      Vue.component('组件的名字',{
       
          
      })
      
      1
      2
      3
      4

      ​ 局部组件

      ​ 声子 挂子 用子

      # 组件的传值

      ​ 父=》子

      ​ 子=》父

      ​ 平行组件传值

      # Vue的全家桶(kfc) vue+vue-router+vuex

      vue+vue-router 主要来做 SPA(Single Page Application) 单页面应用

      vue-router是vue的核心插件

      为什么要使用单页面应用?

      传统的路由跳转,如果后端资源过多,会导致页面出现白屏现象,让前端来做路由,在某个生命周期的钩子函数中发送ajax,数据驱动。为了用户体验

      # 使用vue-router

      ​ 1.下载

       //如果以后是模块化编程,Vue.proptotype.$VueRouter = VueRouter
          //    Vue.use(VueRouter)
          const Home = {
              data() {
                  return {}
              },
              template: `<div>我是首页</div>`
          }
          const Course = {
              data() {
                  return {}
              },
              template: `<div>我是免费课程</div>`
          }
          //2.创建路由
          const router = new VueRouter({
              //3.定义路由规则
              mode:'history',
              routes: [
                  {
                    path:'/',
                    redirect:'/home'
                  },
                  {
                      path: '/home',
                      component: Home
                  },
                  {
                      path: '/course',
                      component: Course
                  }
              ]
          })
          let App = {
              data() {
                  return {}
              },
      //        router-link和router-view 是vue-router 提供的两个全局组件
              //router-view  是路由组件的出口
              //router-link默认会被渲染成a标签,to属性默认被渲染成href
              template: `
                  <div>
      
                      <div class="header">
      					
                          <router-link to = '/home'>首页</router-link>
                          <router-link to = '/course'>免费课程</router-link>
                      </div>
                      <router-view></router-view>
                  </div>
      
              `
      
          }
          new Vue({
              el: '#app',
              //4.挂载 路由对象
              router,
              data() {
                  return {}
              },
              template: `<App />`,
              components: {
                  App
              }
          })
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      # 命名路由
       const router = new VueRouter({
              //定义路由规则
              routes: [
                  {
                    path:'/',
                    redirect:'/home'
                  },
                  {
                      path: '/home',
                      name:'Home',
                      component: Home
                  },
                  {
                      path: '/course',
                      name:'Course',
                      component: Course
                  }
              ]
          })
          
          
           let App = {
              data() {
                  return {}
              },
      //        router-link和router-view 是vue-router 提供的两个全局组件
              //router-view  是路由组件的出口
              template: `
                  <div>
      
                      <div class="header">
                          <router-link :to = '{name:"Home"}'>首页</router-link>
                          <router-link :to = '{name:"Course"}'>免费课程</router-link>
                      </div>
                      <router-view></router-view>
                  </div>
      
              `
      
          }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      # 动态路由匹配

      $route 路由信息对象

      $router 路由对象 VueRouter

      watch: {
          '$route'(to, from) {
              // 对路由变化作出响应...
              console.log(to); //当前路由信息对象
              console.log(from);
          }
      }
      
      1
      2
      3
      4
      5
      6
      7
      # 编程式导航vs 声明式导航
      <router-link :to = '{name:"Home"}'>首页</router-link>
      <router-link :to = '{name:"Course"}'>免费课程</router-link>
      
      //编程式导航
      this.$router.push({
          name:'Home'
      })
      
      1
      2
      3
      4
      5
      6
      7
      edit icon编辑此页open in new window
      上一页
      vue基础
      傻瓜都能写出计算机可以理解的代码。唯有能写出人类容易理解的代码的,才是优秀的程序员。
      Copyright © 2022 YY

      该应用可以安装在您的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和您的操作系统安全地进行交互。

      详情