目录Vue中的options选项options的五类属性入门属性使用vue文件添加组件computed(计算属性)用途缓存示例:watch(监听)用途何为变化deep: true是干
new Vue({
el:"#app"
template:`<div>我是小明</div>`
})
可以使用$mount代替
new Vue({
template:`<div>我是小明</div>`
}).$mount("#app")
对象
new Vue({
template:"<div>{{n}}</div>",
data:{
n:0
}
}).$mount('#app')
函数
vue非完整版只支持函数
new Vue({
template:"<div>{{n}}</div>",
data(){
return {
m:5
}
}
})$mount('#app')
new Vue({
template:"<div>{{n}}{{ add()}} <button @click="add">按钮</button></div>",
data:{
n:0
},
methods:{
add(){
console.log('我可以是事件处理函数也可以是普通函数')
}
}
}).$mount('#app')
注册全局组件
Vue.component('Deon1', {
template: "<h2>全局组件</h2>"
})
注册局部组件
const deon2 = {
template: "<h2>局部组件 {{n}}</h2>",
//在组建中data必须使用函数
data() {
return {
n: "小明"
}
}
}
new Vue({
components: {
Deon2: deon2,
Deon3:{
template:"<h2>组件3</h3>"
}
},
template: `
<div>页面
<Deon1></Deon1>
<Deon2></Deon2>
<Deon3></Deon3>
</div>
`
}).$mount('#app')
deon4.vue文件
<template>
<div>我是deon.vue文件{{ name }}</div>
</template>
<script>
export default {
data() {
name: "组件4";
},
};
</script>
<style scoped>
div {
border: 1px solid red;
}
</style>
import Deon4 from './deon4.vue'
Vue.component('Deon1', {
template: "<h2>全局组件</h2>"
})
const deon2 = {
template: "<h2>局部组件 {{n}}</h2>",
//在组建中data必须使用函数
data() {
return {
n: "小明"
}
}
}
new Vue({
components: {
Deon2: deon2,
Deon3: {
template: "<h2>组件3</h3>"
},
Deon4
},
template: `
<div>页面
<Deon1></Deon1>
<Deon2></Deon2>
<Deon3></Deon3>
<Deon4><Deon4>
</div>
`
}).$mount('#app')
new Vue({
template:"<div>{{n}}</div>",
data:{
n:0
},
created() {
console.log("实例出现在内存中了触发");
},
mounted() {
console.log("实例出现在页面中触发");
},
updated() {
console.log("实例出现了变化触发");
},
destroyed() {
console.log("实例被销毁了触发");
}
}).$mount('#app')
new Vue({
components: {
Deon1: {
props: ["m"],
template: "<div>{{m}}</div>"
}
},
template: `<div><Deon1 :m="m"></Deon1></div>`,
data: {
m: 666
}
}).$mount('#app')
{ [key: string]: Function | { get: Function, set: Function } }
var vm = new Vue({
data: { a: 1 },
computed: {
// 仅读取
aDouble: function () {
return this.a * 2
},
// 读取和设置
aPlus: {
get: function () {
return this.a + 1
},
set: function (v) {
this.a = v - 1
}
}
}
})
vm.aPlus // => 2
vm.aPlus = 3
vm.a // => 2
vm.aDouble // => 4
{ [key: string]: string | Function | Object | Array }
原本 let obj = {a:'a'} 现在 obj={a:'a'} 请问
obj变了没有. obj.a变了没有
简单类型看至,复杂类型(对象)看地址
这其实就是 ===的规则
示例:
var vm = new Vue({
data: {
a: 1,
b: 2,
c: 3,
d: 4,
e: {
f: {
g: 5
}
}
},
watch: {
a: function (val, oldVal) {
console.log('new: %s, old: %s', val, oldVal)
},
// 方法名
b: 'someMethod',
// 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深
c: {
handler: function (val, oldVal) { },
deep: true//监听是否深入
},
// 该回调将会在侦听开始之后被立即调用
d: {
handler: 'someMethod',
immediate: true
},
// 你可以传入回调数组,它们会被逐一调用
e: [
'handle1',
function handle2 (val, oldVal) { },
{
handler: function handle3 (val, oldVal) { },
}
],
// watch vm.e.f's value: {g: 5}
'e.f': function (val, oldVal) { }
}
})
vm.a = 2 // => new: 2, old: 1
注意,不应该使用箭头函数来定义 watcher 函数 (例如 searchQuery: newValue => this.updateAutocomplete(newValue)
)。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.updateAutocomplete
将是 undefined
如果object.a变了,请问object算不算变
如果需要的答案是(也没变啦),那么就用deep: true
如果需要的答案是(没有变),那么就用deep: false
deep的意思是监听 object的时候是否往深了看
到此这篇关于Vue中options选项的文章就介绍到这了,更多相关Vue的options选项内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 详细聊聊Vue中的options选项
本文链接: https://lsjlt.com/news/143416.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0