vuejs和echarts3整合(2)

 在松耦合模式下,vuejs需要通过主动调用函数来触发echarts的数据更新。echarts也可以完全不依赖vuejs,自己控制数据加载。

 可以进一步实现数据绑定。这样vue的data变化,echarts也跟随更新。

 echarts本身不是数据感应控件,通过watch来实现。

<!DOCTYPE html>  
<html>  
<head>  
    <meta charset="gb2312">  
    <title>ECharts</title>  
    <!-- 引入 echarts.js -->  
    <script src="../js/echarts.min.js"></script>  
</head>  
<body>  
		<div id="app-8">
		  <p>{{ message }}</p>
		  <input v-model="message"> 
		  <button v-on:click="changeData">变换数据</button>
		  <!-- 为ECharts准备一个具备大小(宽高)的Dom -->  
     <div  id="main" style="width: 600px;height:400px;"></div>  
		</div>
         <script type="text/javascript">  


    </script>  
</body>  
 <script src="../js/vue.js"></script>
 
     
      <script>
        // 这是我们的Model
        var exampleData = {
             message: [5, 20, 36, 10, 10, 20]
        };
         var exfunction=function () {
				      this.message = this.message.reverse();
				      //this.draw();	//不需要在每个method重复此操作			        
				    };

        // 创建一个 Vue 实例或 "ViewModel"
        // 它连接 View 与 Model				
				var app8 = new Vue({
				  el: '#app-8',
				  data: exampleData,
				  data() {
				    return exampleData 
				    //return  {message: [5, 20, 36, 10, 10, 20]}
				  },
				  methods: {
				    changeData: exfunction,
				    draw(){				     				     				      				  
				        // 指定图表的配置项和数据  
				        var category=["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"];
				        var option = {  
				            title: {  
				                text: 'ECharts 入门示例'  
				            },  
				            tooltip: {},  
				            legend: {  
				                data:['销量']  
				            },  
				            xAxis: {  
				                data: category
				            },  
				            yAxis: {},  
				            series: [{  
				                name: '销量',  
				                type: 'bar',  
				                data: this.message   //数据绑定
				            }]  
				        };  
				  
				        // 使用刚指定的配置项和数据显示图表。  
				        this.myChart.setOption(option);

				    
				    }
				  },
				  watch:{  //数据变化时自动重画,在控制台修改message,会自动重画
				     message: function(){
				        this.draw();    
				     }
				  },
				  mounted(){
            this.$nextTick(function() {
                this.myChart = echarts.init(document.getElementById('main'));  //初始化echarts实例
                this.draw();
            })
          }
				})

    </script>

 

</html>  


 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值