美文网首页
Vue 入门

Vue 入门

作者: sdupidBoby | 来源:发表于2017-11-27 14:06 被阅读27次
图片.png

(*useful)标记:目前觉得有用的函数
//FIXME 标记:待补充


Vue生命周期管理:

lifecycle

指令 (Directives) 是带有 v- 前缀的特殊属性

指令的职责是,当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM

v-if:

<p v-if="seen">现在你看到我了</p>

这里,v-if 指令将根据表达式 seen 的值的真假来插入/移除 <p> 元素。

computed:

计算属性是基于它们的依赖进行 缓存的

computed: {
  now: function () {
    return Date.now()
  }
}

methods:

    Vue.component('child', {
            // 声明 props
            props: {
                message: {
                    type: String,
                    default: "placeholderString-child",
                }
            },
            // 就像 data 一样,prop 也可以在模板中使用
            // 同样也可以在 vm 实例中通过 this.message 来使用
            template: '<span v-on:click="changValue" >{{ message }}</span>',
            mounted: function () {//加载完成

            },
            data: function () {  //这里必须是function
                return {
                }
            },
            methods: {
                changValue: function () { //(*useful)
                    this.$emit("change","子组件向父组件传值"+this.message.type); 
                }
            }
        })

组件组合:有别于传统的JS通信方式,两个模块的交互,类似OC的protocol (*useful)

下图非常重要:非常重要:重要:

从传统直接操作dom,转换到操作数据,来改变数据


非常重要-vue父子组件

v-on: 可省略v-on 表示为 @

监听 DOM 事件来触发一些 JavaScript 代码:
input

键值修饰符:
<input v-on:keyup.enter="submit">
<-- 缩写语法 -->
<input @keyup.enter="submit">
事件修饰符:
<form v-on:submit.prevent="onSubmit">...</form>

v-bind: 可省略v-bind 表示为 :

  • 绑定都是 属性 class style herf id
  • 自定义的 prop

class,style绑定

<div v-bind:class="classObject"></div>
data: {
  isActive: true,
  error: null
},
computed: {
  classObject: function () {
    return {
      active: this.isActive && !this.error,
      'text-danger': this.error && this.error.type === 'fatal'
    }
  }
}

<div v-bind:style="styleObject"></div>
data: {
  styleObject: {
    color: 'red',
    fontSize: '13px'
  }
}

v-model :

v-model 指令在表单控件元素上创建双向数据绑定

<span>Multiline message is:</span>
<p style="white-space: pre-line;">{{ message }}</p>
<br>
<textarea
    v-model="message"
    placeholder="add multiple lines">
</textarea>

修饰符 : lazy
<-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >

组件 (Component) 是 Vue.js 最强大的功能之一

data 必须是函数

Vue.component('my-component', {
  template: '<span>{{ message }}</span>',
  data: function () {
    return data
  }
})

内容分发机制 <slot>

假定我们有一个 app-layout 组件,它的模板为:
<div class="container">
  <header>
    <slot name="header"></slot>
  </header>
  <main>
    <slot></slot>
  </main>
  <footer>
    <slot name="footer"></slot>
  </footer>
</div>

父组件模板:
<app-layout>
  <h1 slot="header">这里可能是一个页面标题</h1>
  <p>主要内容的一个段落。</p>
  <p>另一个主要段落。</p>
  <p slot="footer">这里有一些联系信息</p>
</app-layout>

渲染结果:
<div class="container">
  <header>
    <h1>这里可能是一个页面标题</h1>
  </header>
  <main>
    <p>主要内容的一个段落。</p>
    <p>另一个主要段落。</p>
  </main>
  <footer>
    <p>这里有一些联系信息</p>
  </footer>
</div>

vue底层实现原理:(*useful)

Object.defineProperty: 监听数据的setter getter方法
缺点

  • 不能检测数组的变化

vue改进

  • vue通过hack ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse']方法对数组变化监听,
  • 其他(arr[1]=newValue)则不能监听到。

代替方案:Proxy(加强版Object.defineProperty,可以监听数组等) (*useful)

Vue.js

相关文章

  • Vue 入门到实战课程

    Vue 入门到实战课程 说明 课程 VueCli3.0-小白入门 Vue2.0 小白入门教程 Vue 项目实战 在...

  • VUE系列教程目录

    VUE系列教程目录 vue入门之路篇系列教程: vue最简单的入门教程+实战+Vue2+VueRouter2+we...

  • VUE系列教程目录

    VUE系列教程目录 vue入门之路篇系列教程:vue最简单的入门教程+实战+Vue2+VueRouter2+web...

  • 01vue-安装vue

    资源 1.Vue.js2.0从入门到放弃---入门实例(一)2.Vue.js入门学习(一)3.Vue官方中文Api...

  • Vue.js状态管理工具Vuex快速上手

    Vue2简单入门 Vue.js再入门 Vue.js使用vue-router构建单页应用 Vue.js状态管理工具V...

  • Vue2简单入门

    Vue2简单入门 Vue.js再入门 Vue.js使用vue-router构建单页应用 Vue.js状态管理工具V...

  • Vue.js再入门

    Vue2简单入门 Vue.js再入门 Vue.js使用vue-router构建单页应用 Vue.js状态管理工具V...

  • Vue.js使用vue-router构建单页应用

    Vue2简单入门 Vue.js再入门 Vue.js使用vue-router构建单页应用 Vue.js状态管理工具V...

  • vue基础入门

    vue基础入门

  • 【前端全栈】1.从入门到工作

    2020年大热的前端技术:Vue3/TS/Flutter 1、分阶段: 先导(JS入门、Vue入门等) 入门阶段(...

网友评论

      本文标题:Vue 入门

      本文链接:https://www.haomeiwen.com/subject/abyuyxtx.html