Vue中的入门属性

152 阅读2分钟

1.options的五类属性

  • data数据
  • props属性
  • computed被计算出来的
  • methods方法(面向对象的函数obj.function)
  • watch观察
  • el挂载点(用模版替换页面的中的哪一个模块)
  • template html的内容(完整版使用)
  • render渲染(与template二选一,非完整版用)
  • directives指令
  • filters过滤器(表面上很有用其实不常用,一般不用)
  • components组件(如果在一个文件中引用另一个vue文件,就需要组件)
  • mixins混入
  • extends拓展
  • provide提供
  • inject注入
  • mounted挂载之后

2.常用的options及其用法

1)el--挂载点

//使用$mount挂载
const vm = new Vue({
  render(h) {
    return h(Demo)
  }
})
vm.$mount('#frank')//挂载到frank上去

//不使用$mount
const vm = new Vue({
 el:‘#frank’
  render(h) {
    return h(Demo)
  }
})

2)data--内部数据

  • data可以是一个对象,也可以是一个函数,且优先使用函数,目的是为了组件的复用使得每个组件都可以有一份data的拷贝,防止不同组件修改数据时被相互覆盖。
  • 组件中的data必须用函数
//data为函数时
data() {
return {
n: 0
}
},
//data为对象时
data:{
    n: 0
  },

3)methods--方法(事件处理函数或普通函数)

//事件处理函数:
methods: {
    add() {
      this.n += 1;
    },
  },

//主动调用:每次渲染都会执行一次
const vm = new Vue({
data: {
n: 0,
array: [1, 2, 3, 4, 5, 6, 7, 8]
},
template: `
<div class="red">
{{filterArray()}} //这是js的filter,不是vue的filter
</div>
`,
methods: {
filterArray() {
return this.array.filter(i => i % 2 === 0)
}
},
})

4)components--使用vue组件

  • 创建组件的两种方式:一是直接创建.vue文件,.vue文件就是一个组件。组件最好用大写开头
  • 什么是组件:可以和别人组合在一起的东西
  • 如何使用demo.vue组件:
//方法1(优先使用):首先将demo.vue引入到js,然后声明如下代码:
import Demo from './Demo.vue'
const vm = new Vue({
components: {
frank: Demo //frank1为名字,Demo为对应的值,也可以直接写为Demo:Demo,直接简写为Demo。
},
})

//方法2:
Vue.components('demo2', { template: `<div>demo2</div>` })

//方法3:还可以将方法1和2结合起来
components: {
    frank: { template: `<div>demo222222</div>` }
  },
//引入组建后就可以直接在template中引入:
template: `
<frank/> 
`

5)生命周期钩子

  • 实例出现在内存中--created
  • 实例出现在页面中--mounted
  • 实例更新了--updated(打印的永远是最新的数据)
  • 实例消亡了--destroyed

6)props--外部属性

用来接收外部数据,由外部属性来传值

实例1:

//Demo.vue文件
<script>
export default {
  props: ["message"], //从外部接收一个message,
};
</script>

//main.js文件
const vm = new Vue({
components: { Demo },
template: `
  <div>
    <Demo message = "你好我是message" />
    </div>
  `,
})

message = ""传的永远是字符串类型;
:message = "n"则根据n的值决定传的message的类型

3.methods和函数的区别

方法:面向对象概念,有对象的时候说方法,前面一定会有一个对象(obj.sayhi( ))

函数:数学概念