zoukankan      html  css  js  c++  java
  • 39.VUE学习--组件,子组件中data数据的使用,x-template模板的使用,改变for循环里的某条数据里的值

    多处引用相同组件时,操作data不会相互影响

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<title>vue</title>
    	<link rel="stylesheet" href="">
    	<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    	<!-- <script type="text/javascript" src="../js/vue.js"></script> -->
    
    </head>
    <body>
    <div id="hdcms">
    	<hd-news></hd-news> <!--引入模板 和new Vue()里的components里注册时的名字 hdNews 要一致-->
    	<hr>
    	<hd-news></hd-news>
    
    </div>
    <script type="text/x-template" id="hdNewstemplate">
    	<div>
    
    		<li v-for="(v,k) in news">
    			{{v.id}}=>{{v.title}}=>
    			<button @click='changeadd(v,k)'>加</button>
    			{{v.num}}
    			<!--减法操作方法三,直接操作当前的v.num-->
    			<button @click='v.num-=1'>减</button>
    
    			<!--删除的两种方法-->
    			<!--方法一:直接操作data里的news数据-->
    			<button @click="news.splice(k,1)">删除</button>
    			<!--方法二:调用方法操作data里的news数据-->
    			<button @click="del(k);">删除</button>
    		</li>
    	</div>
    </script>
    <script>
        var hdNews={
            //绑定id="hdNews" 的 x-template模板
            template:'#hdNewstemplate',
            data(){
                return {
                    news:[
                        {id:0,title:'tpshop',num:1},
                        {id:1,title:'hdcms',num:1}
                    ],
                }
            },
            methods:{
                del(k){
                    console.log(k);
                    this.news.splice(k,1)
                },
                changeadd(v,k){
                    //方法一:直接操作传过来的当前对象的里的num
    //                console.log(v.id+v.title);
                    v.num=v.num*1+1;
    
                    //方法二:用传过来的k找到data里对应的当前对象,操作它里面的num
    //				this.news[0].num+=1;
    
                },
    
            }
        };
        new Vue({
            el:'#hdcms',
            //绑定组件hdNews  hdNews:hdNews简写成hdNews
            components:{hdNews},
            data:{},
        });
    </script>
    </body>
    </html>
    

    效果:

  • 相关阅读:
    变量数据类型
    c#变量小例子:模拟用户登入
    防盗监控系统小程序端
    java入门学习
    JAVA字符串处理函数汇总
    Freemarker学习
    监听器(Listener)
    正则表达式
    过滤器(Filter)
    HTML百宝箱(1从0开始)
  • 原文地址:https://www.cnblogs.com/haima/p/10265565.html
Copyright © 2011-2022 走看看