vue基础概念

下面对vue的基础知识点进行记录。
1、vue的生命周期就是vue实例从创建到销毁的全过程,即从main.js中的new Vue()开始,vue实例有一个完整的生命周期。
vue的生命周期中每个阶段对外开放操作vue的接口为钩子函数,包含如下:

  1. beforeCreate(创建前):vue实例完成创建,data没有初始化,不能访问data、method,一般在这个阶段不进行操作;
  2. created(创建后):vue实例中的data、method已被初始化,属性也被绑定,但是此时还是虚拟dom,真实dom还没生成,$el 还不可用。这个时候可以调用data和method的数据及方法,created钩子函数是最早可以调用data和method的,故一般在此对数据进行初始化;
  3. beforeMount(挂载前):模板已经编译完成,但还没有被渲染至页面中(即为虚拟dom加载为真实dom)这个时候可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取;
  4. mounted(挂载后):模板已经被渲染成真实DOM,用户已经可以看到渲染完成的页面,页面的数据也是通过双向绑定显示data中的数据。当执行完 mounted 就表示,实例已经被完全创建好了,此时,如果没有其它操作的话,这个实例,就静静的躺在我们的内存中,一动不动;
  5. beforeUpdate(更新前):更新前状态(view层的数据变化前,不是data中的数据改变前),重新渲染之前触发;
  6. updated(更新后):数据已经更改完成,dom也重新render完成;
  7. beforeDestroy(销毁前):销毁前执行($destroy方法被调用的时候就会执行),一般在这里善后:清除计时器、清除非指令绑定的事件等等;
  8. destroyed(销毁后):销毁后 (Dom元素存在,只是不再受vue控制),卸载watcher,事件监听,子组件;

创建vue实例的示例:

<template>
  <div id="app">
    <span :model="msg"></span>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      msg: 'msg',
    }
  },
  beforeCreate() {
    console.log('----beforeCreate----')
    console.log(this.msg) //msg
    console.log(this.$el) //undefined
  },
  created() {
    console.log('----created----')
    console.log(this.msg)
    console.log(this.$el)
  },
  beforeMount() {
    console.log('----beforeMount----')
    console.log(this.msg)
    console.log(this.$el)
  },
  mounted() {
    console.log('----mounted----')
    console.log(this.msg)
    console.log(this.$el)
  },
}
</script>

2、vue的关键字包含如下:

  • 插值表达式:{{data中的数据}}
  • v-text:操作文本内容;
  • v-html:操作文本和标签;
  • v-bind:单向数据绑定,动态地绑定一个或多个特性,(要绑定的属性)=“(要绑定的属性值)” ;
  • v-model:双向数据绑定,将标签的value值与vue实例中的data属性值进行绑定;
  • v-on:过配合具体的事件名来绑定Vue中定义的函数;
  • v-show:显示隐藏元素;
  • v-if v-else-if v-else:判断指令;
  • v-for:循环指令;

    {{i}}

    遍历数字

    {{s}}

    遍历字符串

    {{i}}-{{v}}

    遍历数组

    {{key}}-{{item}}

    遍历对象
<!-- v-bind:value只能进行单向的数据渲染 -->
<input type="text" v-bind:value="searchMap.keyWord">
<!-- v-model 可以进行双向的数据绑定  -->
<input type="text" v-model="searchMap.keyWord">

3、vue常用属性包括如下:

  • el属性:用来指示vue编译器从什么地方开始解析vue的语法,可以说是一个占位符;
  • data属性:用来组织从view中抽象出来的属性,可以说将视图的数据抽象出来存放在data中;
  • methods属性:放置页面中的业务逻辑,js方法一般放置在methods中,使用v-on时调用的方法必须放在这里面;
<script>
        var app = new Vue({
            //el: "#app",//建议使用id选择器
            //el: ".app",//类选择器
            el: "div", //标签选择器
            data: {
                message: "你好,Vue"
            }
        })
</script>

4、组件
组件(Component)是 Vue.js 最强大的功能之一,组件可以扩展 HTML 元素,封装可重用的代码。

  • 局部组件

定义组件

var app = new Vue({
    el: '#app',
    // 定义局部组件,这里可以定义多个局部组件
    components: {
        //组件的名字
        'Navbar': {
            //组件的内容
            template: '<ul><li>首页</li><li>用户管理</li></ul>'
        }
    }
})

使用组件

<div id="app">
    <Navbar></Navbar>
</div>
  • 全局组件

定义组件

// 定义全局组件
Vue.component('Navbar', {
    template: '<ul><li>首页</li><li>学员管理</li><li>讲师管理</li></ul>'
})

使用组件

<div id="app">
    <Navbar></Navbar>
</div>
<script src="vue.min.js"></script>
<script src="components/Navbar.js"></script>
<script>
    var app = new Vue({
        el: '#app'
    })
</script>

后续会持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值