methodName : function() {code lines }
:属性名 = "变量||常量名"
@原生事件名 = "给变量进行的操作||变量名"
Vue.component('组件名', 组件对象)
<div id="app">div>
<script src="js/vue.min.js">script>
<script>
// 注册公共的全局组件
Vue.component('my_button', {
template : `
`
})
// 创建header组件
var myHeader = {
template : `
我是header组件
`
}
// 创建footer组件
var myFooter = {
template : `
我是footer组件
`
}
// 创建footer组件
var App = {
template : `
我是子组件
`,
components : {
my_header : myHeader,
my_footer : myFooter,
}
}
new Vue({
el : '#app',
template : `
我是父组件
`,
components : {
app : App,
}
})
script>
filters : {过滤器名 : function(){代码行;}}
最终方法内通过return产出最终的数据Vue.filter(过滤器名 , function(){代码行;})
最终也是方法内通过return产出最终的数据{{ 原有数据 | 过滤器名}}
要注意下v-text中用$options.filters.过滤器名(原有数据)
<div id="app">div>
<script src="js/vue.min.js">script>
<script>
Vue.filter('fil_2' , function(value) {
return '这是用v-text插件显示的value反转后的值(全局过滤器):' + value.split('').reverse().join(',');
})
new Vue({
el : '#app',
template : `
{{myValue | fil_1('这是用差值表达式显示的value反转后的值:')}}
`,
data() {
return {
myValue : '这是Value的值',
}
},
filters : {
fil_1 : function(value, str) {
return str + value.split('').reverse().join('');
},
}
})
script>
watch : {数据名称 : function(newValue, oldValue){代码行;}}
(该函数的两个参数第一个是新值,第二个参数是旧值)watch : {数据名称 : {deep : true, handler : function(newValue, oldValue){代码行;}}}
(因为监视还是监视的对象的地址,又因为该函数的两个参数的数据类型是对象或者列表,地址不会更改,所以连个参数的访问地址都是一样的,都是新的值){{计算属性的名称}}
<div id="app">div>
<script src="js/vue.min.js">script>
<script>
new Vue({
el : '#app',
template : `
{{myValue1}}
{{myValue2[0].name}}
+
-
={{result}}
`,
data : {
myValue1 : '请输入xxxx',
myValue2 : [{name : '改变原来的值'}],
n_1 : 0,
n_2 : 0,
n_3 : 0,
},
watch: {
myValue1 : function(newValue, oldValue) {
console.log(oldValue);
if (newValue == 'xxxx') {
alert('让你输你就输,让你吃屎呢')
}
},
myValue2 : {
deep : true,
handler : function(newValue, oldValue) {
alert('改变成功!!原来的值为:' + e[0].name)
}
}
},
computed: {
result : function(e) {
return this.n_1-0 + (this.n_2-0) - this.n_3;
}
},
})
script>
<子组件名>DOM子组件名>
<子组件名 slot = "名字">DOM子组件名>
<style>
li {
list-style: none;
width: 33%;
height: 200px;
background-color: brown;
float: left;
border: 1px black solid;
}
style>
<div id="app">div>
<script src="js/vue.min.js">script>
<script>
var myLi1 = {
template : `
第一个子组件DOM
`,
}
var myLi2 = {
template : `
`,
}
var mySlot = {
template : `
我是第一个坑:
我是第二个坑:
`,
}
new Vue({
el : '#app',
template : `
1
3
33
333
3333
1
3
33
333
3333
我是第二个坑的内容
我是第一个坑的内容
`,
components : {
my_li1 : myLi1,
my_li2 : myLi2,
my_slot : mySlot,
},
})
script>
beforeCreate 组件创建之前
created 组件创建之后
beforeMount vue起作用,装载数据到DOM之前
mounted vue起作用,装载数据到DOM之后
beforeUpdate 基于数据改变,影响页面,改变前
updated 基于数据改变,影响页面,改变后
beforeDestroy 对应父组件v-if false 就销毁当前组件,销毁之前
destroyed 对应父组件v-if false 就销毁当前组件,销毁之后
activated 组件被激活了
deactivated 组件被停用了
内置组件包裹,通过在keep-alive内置组件里使用v-if就相当于是组件的激活和停用<div id="app">div>
<script src="js/vue.min.js">script>
<script>
var App = {
template : `
{{myValue}}
`,
data() {
return {
myValue : 'xxx',
}
},
beforeUpdate() {
console.log('子组件,beforeUpdate');
},
updated() {
console.log('子组件,updated');
},
beforeDestroy() {
console.log('子组件,beforeDestroy');
},
destroyed() {
console.log('子组件,destroyed');
},
activated() {
console.log('子组件,activated');
},
deactivated() {
console.log('子组件,deactivated');
},
}
new Vue({
el : '#app',
template : `
`,
components : {
app : App,
},
data : {
isExist : true,
},
beforeCreate : function() {
console.log('父组件,beforeCreate');
// console.log(document.body.innerHTML);
},
created : function() {
console.log('父组件,created');
// console.log(document.body.innerHTML);
},
beforeMount : function() {
console.log('父组件,beforeMount');
// console.log(document.body.innerHTML);
},
mounted : function() {
console.log('父组件,mounted');
// console.log(document.body.innerHTML);
},
beforeUpdate() {
console.log('父组件,beforeUpdate');
},
updated() {
console.log('父组件,updated');
},
activated() {
console.log('父组件,activated');
},
deactivated() {
console.log('父组件,deactivated');
},
beforeDestroy() {
console.log('父组件,beforeDestroy');
},
destroyed() {
console.log('父组件,destroyed');
},
})
script>