资讯专栏INFORMATION COLUMN

vue入门笔记体系(一)vue实例

microelec / 2326人阅读

摘要:就是实例中的对象当前组件接收到的对象。当前组件数的根实例如果当前实例没有父实例,此实例将会是其自己当前实例的直接子组件。

vue实例

每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的:

var vm = new Vue({
  // 选项
})

当创建一个 Vue 实例时,你可以传入一个选项对象。作为参考,你也可以在 api/#选项-数据 文档 中浏览完整的选项列表。

const app = new Vue({
  el: "#root", // vue实例挂载的位置,如果不用el挂载,则也可以用app.#mount("#root")
  template: "
{{text}} {{obj.a}}
", //模板选项 data: { //实例数据选项 text: 0 } })
vue实例属性(常用)

除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。

$data

app.$data //{text:1},就是vue实例中的data对象

$props

app.$props // 当前组件接收到的 props 对象。父组件向子组件传递的数据

$el

app.$el //vue挂载的dom节点

$options

// 需要在选项中包含自定义属性时会有用处
app.$options //当前 Vue 实例的初始化选项,注意:直接修改app.$options.data.text = 1的值是没有效果的

$parent

app.$parent //父实例,如果当前实例有的话。

$root

app.$root //当前组件数的根vue实例,如果当前实例没有父实例,此实例将会是其自己

$children

// 当前实例的直接子组件。使用组件时使用,比如使用
组件时,里面的就是item的children app.$children

$slots

app.$slots//作为插槽的时候引用
app.$scopedSlots//

$refs

//模板的引用,快速定位到节点或组件,返回HTML对象或组件,例如
app.$refs

$isServer

app.$isServer//当前 Vue 实例是否运行于服务器。 应用于服务端渲染
实例方法

$watch( expOrFn, callback, [options] )

app.$watch //监听数据变化时执行,与选项里面的watch一样

对比:

unWatch = this.$watch("text", (newText, oldText) => {
      console.log(`${newText} : ${oldText}`)
})
watch: {
    text(newText, oldText) {
      console.log(`${newText} : ${oldText}`);
    }
  },
//使用watch监听时,组件销毁时会自动销毁,而$watch则不会,必须自己调用unWatch()进行销毁

$on(event,callback) $emit( eventName, […args] ) $once( event, callback )

//监听事件
app.$on("test", function (msg) {
  console.log(msg) //hi
})
//触发事件
app.$emit("test", "hi")
//监听事件,只触发一次
app.$once("test", function (msg) {
  console.log(msg) //hi
})

$forceUpdate()

//迫使 Vue 实例重新渲染。
app.$forceUpdate()
//当给初始化未设置的属性时,就不会自动响应数据,这样迫使重新渲染,可以重新响应
//尽量不要以这种方式来做,这样性能开销很大

$set( target, key, value ) $delete( target, key )

//设置某一个值
app.$set(this.obj,"a",i)
//删除某一个值
app.$set(this.obj,"a)

$nextTick ( [callback] )

//$nextTick 是在下次 DOM 更新循环结束之后执行延迟回调,在修改数据之后使用 $nextTick,则可以在回调中获取更新后的 DOM,Vue 实现响应式并不是数据发生变化之后 DOM 立即变化,而是异步更新的
new Vue({
  // ...
  methods: {
    // ...
    example: function () {
      // 修改数据
      this.message = "changed"
      // DOM 还没有更新
      this.$nextTick(function () {
        // DOM 现在更新了
        // `this` 绑定到当前实例
        this.doSomethingElse()
      })
    }
  }
})

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110157.html

相关文章

  • vue入门笔记体系(二)vue生命周期

    摘要:此时还未有选项钩子函数和间的生命周期完成后,会有一个判断过程,判断对象是否有选项。钩子函数和钩子函数间的生命周期当发现中的数据发生了改变,会触发对应组件的重新渲染,先后调用和钩子函数。和钩子函数间的生命周期钩子函数在实例销毁之前调用。 vue生命周期 这是vue生命周期的图示具体内容:showImg(https://segmentfault.com/img/bV4xju?w=1200&...

    scola666 评论0 收藏0
  • vue入门笔记体系(六)vue组件

    摘要:更推荐用和实现父子组件通信创建实例此时打印出组件继承使用基础构造器,创建一个子类。包含组件选项的对象创建构造器创建实例,并挂载到一个元素上。该对象包含可注入其子孙的属性。和绑定并不是可响应的。 组件注册 关于组件名: *组件名可以是kebab-case (短横线分隔命名)或者PascalCase (驼峰式命名) 当使用 kebab-case (短横线分隔命名) 定义一个组件时,你也必...

    Neilyo 评论0 收藏0
  • vue入门笔记体系(六)vue组件

    摘要:更推荐用和实现父子组件通信创建实例此时打印出组件继承使用基础构造器,创建一个子类。包含组件选项的对象创建构造器创建实例,并挂载到一个元素上。该对象包含可注入其子孙的属性。和绑定并不是可响应的。 组件注册 关于组件名: *组件名可以是kebab-case (短横线分隔命名)或者PascalCase (驼峰式命名) 当使用 kebab-case (短横线分隔命名) 定义一个组件时,你也必...

    niuxiaowei111 评论0 收藏0
  • vue入门笔记体系(五)vue指令

    摘要:指令指令带有前缀,以表示它们是提供的特殊特性。添加事件侦听器时使用模式。只当事件是从侦听器绑定的元素本身触发时才触发回调。差别在哪里将特性名转换为从开始支持语法糖,会扩展成一个更新父组件绑定值的侦听器。 vue指令 指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性。 v-text {{msg}} v-html //渲染HTML文本,更新元素的 innerHTML 。注意:内...

    myshell 评论0 收藏0
  • Java学习路线总结,搬砖工逆袭Java架构师(全网最强)

    摘要:哪吒社区技能树打卡打卡贴函数式接口简介领域优质创作者哪吒公众号作者架构师奋斗者扫描主页左侧二维码,加入群聊,一起学习一起进步欢迎点赞收藏留言前情提要无意间听到领导们的谈话,现在公司的现状是码农太多,但能独立带队的人太少,简而言之,不缺干 ? 哪吒社区Java技能树打卡 【打卡贴 day2...

    Scorpion 评论0 收藏0

发表评论

0条评论

microelec

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<