深入浅析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 相关文章推荐
js 数组实现一个类似ruby的迭代器
Oct 27 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
JS保存和删除cookie操作 判断cookie是否存在
Nov 13 Javascript
JS去除字符串两端空格的简单实例
Dec 27 Javascript
巧用replace将文字表情替换为图片
Apr 17 Javascript
关于javascript模块加载技术的一些思考
Nov 28 Javascript
Jquery实现由下向上展开效果的例子
Dec 08 Javascript
BetterScroll 在移动端滚动场景的应用
Sep 18 Javascript
swiper自定义分页器使用方法详解
Sep 14 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
解析vue路由异步组件和懒加载案例
Jun 08 Javascript
JavaScript控制浏览器全屏显示简单示例
Jul 05 Javascript
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
访问编码后的中文URL返回404错误的解决方法
2014/08/20 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
PHP实现的敏感词过滤方法示例
2019/03/06 PHP
详解提高使用Java反射的效率方法
2019/04/29 PHP
tp5.1 框架查询表达式用法详解
2020/05/25 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
基于jquery的loading效果实现代码
2010/11/05 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
js禁止小键盘输入数字功能代码
2011/08/01 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
jQuery Timelinr实现垂直水平时间轴插件(附源码下载)
2016/02/16 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
AngularJS与BootStrap模仿百度分页的示例代码
2018/05/23 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
django 模版关闭转义方式
2020/05/14 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
摩托车和ATV零件、配件和服装的首选在线零售商:MotoSport
2017/12/22 全球购物
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
安全标准化实施方案
2014/02/20 职场文书
励志演讲稿600字
2014/08/21 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers