深入浅析Vue组件开发


Posted in Javascript onNovember 25, 2016

前言

这里讲的主要是想谈谈基于Vue的一个组件开发。不得不说的一点就是,在实际的Vue项目中,页面中每一个小块都是由一个个组件(.vue文件)组成,经过抽离后,然后再合并一起组成一个页面。由于上家公司我负责多的是可视化这一块的开发,这边我也将带着大家进行一个Vue项目中的可视化组件的开发,这里用到的框架将是主流的可视化框架highcharts。

一、Vue环境的搭建

1、Mac用户

首先安装包管理homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

再安装node

brew install node

安装vue

npm install vue

2、windows用户

进入nodejs官网,然后下载对应自己电脑系统的版本

深入浅析Vue组件开发

安装成功,安装vue

npm install vue

最后查看一下自己node,npm,vue版本(失败的话自行百度windows系统如何安装node)。下图是我目前node,npm及vue的版本

如果这里出问题了,请全局安装vue-cli

npm install -g vue-cli

二、Vue项目初始化

进入你需要搭建Vue项目的目录下执行

vue init webpack my-vue-component

配置就按下图进行选择

深入浅析Vue组件开发

然后进入到my-vue-component目录执行

# 下载项目的版本依赖
npm install

由于我家里的网络,需要翻墙的npm根本动不了,这里我用的是淘宝镜像进行的依赖安装,没有淘宝镜像的先安装一下吧(实际项目中还是需要用npm,毕竟cnpm会忽略下载一些依赖的)

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装完成,启动项目

npm run dev

OK,至此,Vue项目便搭建好了。

三、highchars的导入与搭建

首先通过cnpm进行highchars的导入

cnpm install highcharts --save

导入完成后就可以进行highchars的可视化组件开发了

1、首先打开自己初始化好的项目(这里我用的是sublime,实际开发中我用的是atom)

在初始化好了的components目录下新建一个chart.vue文件

接下来搭建chart组件的架子

<template>
<div class="x-bar">
<div :id="id"
:option="option"></div>
</div>
</template>
<script>
import HighCharts from 'highcharts'
export default {
// 验证类型
props: {
id: {
type: String
},
option: {
type: Object
}
},
mounted() {
HighCharts.chart(this.id,this.option)
}
}
</script>

chart架子搭好后,开始创建chart-options目录,里面创建一个options.js用来存放模拟的chart数据

这里我模拟写了一个柱状图的数据

module.exports = {
bar: {
chart: {
type: 'bar',
},
series: [{
data: [50, 235, 809, 947]
}]
}
}

四、引用chart组件

这里直接就把引用写到App.vue这么一个接口文件中吧

<template>
<div id="app">
<x-chart :id="id" :option="option"></x-chart>
</div>
</template>
<script>
// 导入chart组件
import XChart from 'components/chart.vue'
// 导入chart组件模拟数据
import options from './chart-options/options'
export default {
name: 'app',
data() {
let option = options.bar
return {
id: 'test',
option: option
}
},
components: {
XChart
}
}
</script>
<style>
#test {
width: 400px;
height: 400px;
margin: 40px auto;
}
</style>

到这里,chart组件也引入成功,我们直接看一下最后页面中显示的效果吧

深入浅析Vue组件开发

这里需要说明一点的就是对于所有highchars组件的适用度。大家通过看我写的模拟数据也可以看出来,这里我是把一些通用的属性给直接忽略了。如果实际项目的开发中需要的话,大家可以把通用的一些属性的数据直接写到chart.vue文件中。通过props验证,写好default默认值作为通用属性。直接给大家看下我实际开发当中对于一些通用属性的处理吧

深入浅析Vue组件开发

这里还是需要看你们项目的需求,然后制定一套属于自己的通用的属性。然后再单独对每个组件进行操作。

以上所述是小编给大家介绍的Vue组件开发,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
IE浏览器PNG图片透明效果代码
Sep 02 Javascript
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
js循环改变div颜色具体方法
Jun 25 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
Js 正则表达式知识汇总
Dec 02 Javascript
javascript如何操作HTML下拉列表标签
Aug 20 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
vue2滚动条加载更多数据实现代码
Jan 10 Javascript
AngulaJS路由 ui-router 传参实例
Apr 28 Javascript
详解如何使用router-link对象方式传递参数?
May 02 Javascript
vue实现两个组件之间数据共享和修改操作
Nov 12 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
javascript中href和replace的比较(详解)
Nov 25 #Javascript
移动适配的几种方案(三种方案)
Nov 25 #Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
Nov 25 #Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
Nov 25 #Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
Nov 25 #Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
Nov 25 #Javascript
Bootstrap文件上传组件之bootstrap fileinput
Nov 25 #Javascript
You might like
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
PHP重定向的3种方式
2013/03/07 PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
php的lavarel框架中join和orWhere的用法
2020/12/28 PHP
javascript中的有名函数和无名函数
2007/10/17 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
jquery 事件执行检测代码
2009/12/09 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
JS正则表达式验证数字代码
2014/01/28 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[08:08]2014DOTA2国际邀请赛中国区预选赛精彩TOPPLAY
2014/06/25 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
Python对字符串实现去重操作的方法示例
2017/08/11 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Python常用爬虫代码总结方便查询
2019/02/25 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
中国领先的专业演出票务网:永乐票务
2016/08/29 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
离婚答辩状范文
2015/05/22 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书