vue3

moment.js时间格式处理

image

更多使用方法在官网
··

过滤器的使用

(示例)

局部过滤器

 //1.注册局部过滤器 在组件对象中定义
//data同级别
filters:{                //任意值接收
	'过滤器的名字':function(value){
	} 	
}
//2.使用过滤器 使用管道符 | 
{{price  | '过滤器的名字'}}

//声明
filters:{                //任意值接收
	'过滤器的名字':function(value,a,x){
	} 	
}	

使用			//当前alex就是函数接受的a     (可以多传对号入座)
{{price  | '过滤器的名字(alex,x)'}}
Title
<script src="vue.min.js"></script>
//vue根组件里的template渲染到标签里 填写一个msg 或者已近挂子过的参数即可 需要包裹多标签

全局过滤器

// 注册全局的过滤器
//第一个参数是过滤器的名字,第二个参数是执行的操作

Vue.filter('reverse',function(value) {    
    return value.split('').reverse().join('');
});

//使用跟 局部过滤器一样
{{price  | '过滤器的名字'}}
{{price  | '过滤器的名字(alex,x)'}}

生命周期的钩子函数

image

beforeCreate(){},组件创建之前

created(){},组件创建之后,created中可以操作数据,发送ajax

beforeMount(){}, 组件挂载之前,数据到DOM之前会调用

mounted(){},组件挂载之后,数据到DOM之后会调用 可以获取到真实存在的DOM元素,

beforeUpdate(){},组件在更新之前,调用此钩子,应用:获取原始的DOM

updated(){}, 组件在更新之后,调用此钩子,应用:获取最新的DOM

beforeDestroy(){} ,销毁之前
destroyed(){} , 销毁后 //注意: 定时器的销毁 要在此方法中处理

activated(){},   内置的<keep-alive>(保存当前状态)  组件被激活时调用
deactivated(){} ,组件被移除时调用

详细参考下图:

image

代码示例

 document.querySelector('#box').style.color = 'red';  新接触  获取当前标签
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<div id="app">
    <App/>
</div>
<script src="vue.js"></script>

<script>
    let Test = {
        data() {
            return {
                msg: 'alex',
                count:0,
                timer:null
            }
        },
        template: `
               <div id="test">
                    <div id="box">{{ msg }}</div>
                    <p>{{ count }}</p>
                    <button @click = 'change'>修改</button>
               </div>
            `,
        methods: {
            change() {
                this.msg = 'wusir';
                document.querySelector('#box').style.color = 'red';
            }
        },
        beforeCreate() {

            // 组件创建之前
            console.log('组件创建之前', this.msg);

        },
        created() {
//                ********最重要
            // 组件创建之后
//            this.timer = setInterval(()=>{
//                this.count++
//            },1000);

            // 使用该组件,就会触发以上的钩子函数,
            // created中可以操作数据,发送ajax,并且可以实现数据驱动视图
            // 应用:发送ajax请求

            console.log('组件创建之后', this.msg);

            // this.msg = '嘿嘿黑';

        },
        beforeMount() {

            // 装载数据到DOM之前会调用

            console.log(document.getElementById('app'));


        },
        mounted() {
//            *******很重要*****

            // 这个地方可以操作DOM

            // 装载数据到DOM之后会调用 可以获取到真实存在的DOM元素,vue操作以后的DOM

            console.log(document.getElementById('app'));
            //jsDOM操作

        },
        beforeUpdate() {

            // 在更新之前,调用此钩子,应用:获取原始的DOM

            console.log(document.getElementById('app').innerHTML);

        },
        updated() {

            // 在更新之后,调用此钩子,应用:获取最新的DOM

            console.log(document.getElementById('app').innerHTML);

        },
        beforeDestroy() {

            console.log('beforeDestroy');

        },
        destroyed() {
            //注意: 定时器的销毁 要在此方法中处理
            console.log('destroyed',this.timer);
            clearInterval(this.timer);

        },
        activated(){

            console.log('组件被激活了');

        },

        deactivated(){

            console.log('组件被停用了');

        }
    }
    let App = {
        data() {
            return {
                isShow:true
            }
        },
        template: `

               <div>

                   <keep-alive>
                     <Test  v-if="isShow"/>
                  </keep-alive>
                    <button @click = 'clickHandler'>改变test组件的生死</button>
               </div>
            `,
        methods:{
          clickHandler(){
              this.isShow = !this.isShow;
          }
        },
        components: {
            Test
        }

    }
    new Vue({
        el: '#app',
        data() {
            return {}
        },
        components: {
            App
        }

    })

</script>
</body>
</html>

生命周期钩子函数

小总结

Vue的基本语法
模板语法{{}}   django可能会与之冲突  可以在关闭django模板语法
指令系统
	v-text
	v-html
	v-show和v-if
	v-bind和v-on
	v-for
	v-model 双向的数据绑定
Vue中常用的数据属性
	data:function(){}
	el
	methods
	watch
	computed
	template
Vue的常用方法
	钩子函数
Vue的过滤器
	filters  局部
	Vue.filter   全局

Vue的组件
	Vue.componen('租件的名字',{配置选项})   全局组件

	局部组件
	声子 挂子 用子
组件的传值
	子=》父  props
	父=》子
	平行组件传值


posted @ 2021-06-16 21:09  欧阳锦涛  阅读(36)  评论(0)    收藏  举报
TOP 底部