Vue基础

核心:

1、Vue.js是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM系统
2、在编写代码时,你不需要关注DOM操作,只需要关注逻辑层面即可。
3、组件系统。

示例:
//注册一个“todo-item”Vue组件 Vue.component('todo-item', { props: ['todo'], template: '
  • {{ todo.text }}
  • ' }) //{{var}}差值表达式 var app7 = new Vue({ //接管id为app-7的DOM元素,与该DOM节点绑定 //挂载点 el: '#app-7', //数据 data: { groceryList: [ { id: 0, text: '蔬菜' }, { id: 1, text: '奶酪' }, { id: 2, text: '随便其它什么人吃的东西' } ] } }) //bind属性绑定:单向绑定 //v-model:双向绑定
    生命周期图示
    Vue基础_第1张图片
    生命周期图示
    模板语法

    {{}}:差值表达式(Mustache):

    • 文本:Message: {{ msg }}
    • 原始html:

    • JS表达式:{{ ok ? 'YES' : 'NO' }}
      *注意:该特性不能作用于Html特性上,遇到这种情况应该使用 v-bind 指令
    指令
    指令 功能 简写 备注
    v-if,v-else-if, v-else 条件渲染 没有 key 管理可复用的元素
    v-for 遍历 没有 1、支持一个可选的第二个参数为当前项的索引
  • 2、需要为每项提供一个唯一 key属性,理想的 key 值是每项都有的唯一 id
  • v-bind 属性绑定 :
    v-on 事件绑定 @
    v-show 条件渲染 没有 v-show 的元素始终会被渲染并保留在 DOM 中,v-if则会销毁
    Vue实例属性:
    var app = new Vue({
      //挂载点
      el : "",
      //数据
      data : {},
      //方法
      methods : {},
      //计算属性
      computed : {},
      //监听属性
      watch : {}
    })
    
    class和style绑定

    1、绑定从class

    1、对象语法
    
    data: { isActive: true, hasError: false } 结果渲染为:
    2、数组语法
    data: { activeClass: 'active', errorClass: 'text-danger' } 结果渲染为:
    //注:用在组件上会在组件原基础上添加class
    绑定style

    1、内联绑定

    1、对象语法
    //v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) 来命名
    
    data: { activeColor: 'red', fontSize: 30 } //直接绑定到一个样式对象通常更好,这会让模板更清晰
    data: { styleObject: { color: 'red', fontSize: '13px' } } 2、数组语法 //数组语法可以将多个样式对象应用到同一个元素上
    事件修饰符
    
    
    
    
    
    ...
    ...
    2.1.4 新增 2.3.0 新增
    ...
    使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。
    按键修饰符
    
    
    
    
    
    记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名
    
    
    
    全部的按键别名:
    https://cn.vuejs.org/v2/guide/events.html
    可以通过全局 `config.keyCodes` 对象[自定义按键修饰符别名](https://cn.vuejs.org/v2/api/#keyCodes):
    
    
    组件*

    示例

    // 定义一个名为 button-counter 的新组件 Vue.component('button-counter', { data: function () { return { count: 0 } }, template: '' }) new Vue({ el: '#components-demo' })

    注:
    1、你可以将组件进行任意次数的复用:每个组件单独维护它的“count”,因为没用一次组件,就会有一个它的实例被创建。

    2、因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。

    data必须是一个函数

    data: {
      count: 0
    }
    

    通过props向子组件传递数据 (相当于函数的参数)

    //当一个值传递给一个prop特性的时候,它就变成了那个组件实例的一个属性。
    Vue.component('blog-post', {
      props: ['title'],
      template: '

    {{ title }}

    ' }) //使用

    *每个组件必须只有一个“根元素”。你可以将模板的内容包裹在一个父元素内

    通过事件向父级组件发送消息
    调用内建的 $emit 方法并传入事件的名字,来向父级组件触发一个事件

    Vue.component('blog-post', { props: ['post'], template: `

    {{ post.title }}

    //向父组件发送一个“enlarge-text'”事件
    ` }) new Vue({ el: '#blog-posts-events-demo', data: { posts: [ { id: 1, title: 'My journey with Vue' }, { id: 2, title: 'Blogging with Vue' }, { id: 3, title: 'Why Vue is so fun' } ], postFontSize: 1 } })

    通过插槽分发内容

    Vue.component('alert-box', {
      template: `
        
    Error!
    ` })

    ——————————更多内容——————————————

    你可能感兴趣的:(Vue基础)