• Vue.js中基础知识学习点


    给样式背景赋值:

    :style="{backgroundImage:'url(' + otherInfo.head_image + ')'}"

      

    <img :src="'__ROOT__/upload/'+mesay.message"
    v-if="message.type == 'text'" 

     2.监听器--watch的使用:

      

    watch : {
       firstName: function(val){ //firstName是data里的v-model绑定的值
            this.fullName = val;
        }  
    }
    

    3. v-cloak的使用:

    在style里 : [v-cloak]{diaplay:none;}

    再在html标签 里增加v-cloak属性

    4.注意它们区别:v-text,v-html,v-pre ,v-model.laze  

    5.过滤器的使用

    <body>
     <div id="app">
     	<div class="test">{{msg|upper|lower}}</div>
     </div>
    </body>
    <script type="">
    	//全局过滤器,过滤器名。方法。对属性同样可用,只是没了大括号
    	Vue.filter('upper',function(value,arg1){ //第二个参数开始可以传自己的参数
    		return value.charAt(0).toLowerCase()+value.slice(1);
    	});
    
    	//局部过滤器
    	var app = new Vue({
    		el:'#app',
    		data:{
    			msg:''
    		},
    		filters: {	//局部过滤器.html里直接调用名称,可多个,后者在前者基础上接着过滤
    			upper: function(v){
    				return v.charAt(0).toLowerCase()+v.slice(1);
    			}
    		}
    	})
    </script>
    </html>
    

      

      6.生命周期的三个阶段:挂载,更新,销毁。 销毁如何执行:调用this.$destory();其它方法都会被销毁。

    7.修改响应式数据:直接vue修改与实例修改

      Vue.set(vm.list,1,'test'); //将data里的list里的1号位元素修改为test值。

      vm.$set(vm.list,1,'test');//实例方式修改

    8.组件的命名,注册,使用,插棤,调试。

      组件注意:1.命名注意驼峰式的在模板字符串中可以使用,但在根组件里要转成-的形式使用。

           2. DATA返回必须返回函数.

           3. 组件外层用div包起来。

           4. 模板内容可以是模板字符串。

      组件分全局组件与局部组件:

        全局: Vue.component(组件名,{data:function(){},template:'字符串'});

        局部:data同级增加components:{'template-name':{data:function(){},template:字符串}} //第二个参数可以先声明变量,局部组件只能在父组件里使用。  

      组件通讯与传值:

        父传子:props.

            父组件里:<menu-list :title="title"></menu-list> //:title会传给子组件,写死的值就可以不要:

            子组件里:Vue.component('menu-list',{props:['title'],data:function(){},template:'.....' });//子组件可以直接调用 title;

        注意:字符串模板中,驼峰传值驼峰接收可以。但标签里只能横线传,可以驼峰接收。

        props属性:String,Number,Boolean,Array,Object.

        子传父:$emit;

            子组件里: <button @click='$emit("parent-attr")'>add</button>   //parent-attr要写到父组件的属性里。

            父组件里: <my-cmp @parent-attr='handle'></my-cmp>   //父组件的methods里写一个handle的方法可监测执行到。 

        同级相传: 自定义事件或叫事件总线. (建立事件通讯--监听与销毁--触发事件)

           

    //1.在组件的mounted里监听.
    var hub = new Vue();  //建立事件总线,实例化.
    
    //以下为组件A
    data:function()
    {    return {
               num:0,
            }
     },
    methods:{
        handel:function(){
             hub.$emit('jerry',1); //jerry为对方(兄弟)组件事件名,1为传过去的值.
        }
    },
    mounted:{ //这里监听 
          hub.$on('tom-event',(val)=>{  //val为接收传过来的值,tom-event对自身事件的命名
                 this.num+= 1;  
        });
    } ,
    template:`<div>jerry{{num}},<button @click='handel'>点击</button></div>`   
    

      

        插槽:基本插槽,自命名插槽,作用域插槽.

            基本插槽:1.子组件模板中写个<slot>这里自定义内容,可写可不写</slot>,父组件里的此组件名里加入slot:<my-comp><slot>这是父组件传来的内容</slot></my-comp>;

            命名插槽:1.子组件模板中写个<slot name="header">这里自定义内容,可写可不写</slot>,父组件里的此组件名里加入slot:<my-comp><slot name="header">这是父组件传来的内容</slot></my-comp>;

            作用域插槽:场景如:父组件传个list到子组件,要求子组件里某个list高亮显示.

             

    //父组件里增加属性
            <my-comp :psend="lists">
    
                <template slot-scope="slotPr">//需要自定义一个slot-slit-scope名字
                    <strong v-if="slotPr.info.id==pdex" class="current">{{slotPr.info.name}}</strong>
                    <span v-else>{{ slotPr.info.name}}</span>
                </template>
            </my-comp>
    
    //子组件内容如下
                <ul>
                    <li v-for="item in psend" :key="item.id">
                        <slot :info="item">{{ item.name}}</slot>//定义一个info传上去
                    </li>
                </ul>
    

      

     

  • 相关阅读:
    CSS优先级及继承
    group by 与 order by
    软件开发升级指南(转)
    安装DELL服务器,安装Windows 2003 sp2 问题
    SQL SERVER 2005数据库总结
    C#操作INI文件(调用WindowsAPI函数:WritePrivateProfileString,GetPrivateProfileString)
    对RBS理解与使用
    WSS和MOSS的区别
    关于.net winform ComboBox数据绑定显示问题
    OpenNETCF.Desktop.Communication.DLL程序集的使用
  • 原文地址:https://www.cnblogs.com/bing2017/p/10741854.html
Copyright © 2020-2023  润新知