当前位置:   article > 正文

vue.js + element-ui入门开发,思路引领_element.vue.js

element.vue.js

作为一名java程序员, 最近由于工作上的需要, 从事了2个月的前端开发, 今天写下自己的心得, 整理一下这方面的知识。

准备工作: 

0:感想: 前端技术变化很快,以前只涉及过js,jquery这些技术,都是一些html静态页面,vue.js采用虚拟DOM技术,开发效率更高,

还可以进行debug调试, 不局限于是Google调试,有助于开发。

1: 对比vue.js 和jquery

   简单对比一下, jquery 拥有丰富的选择器,DOM操作方便, 更适合写逻辑性的操作, 而VUE拥有更高校的开发效率,采用虚拟DOM技术, 但是不适合逻辑方法的操作(配合jquery+js使用)。

2:element-ui 

  这是一套前端组件架构, 类似于bootstrap,'饿了吗'公司出品,单独使用效果不佳,需要配合vue.js 使用,他们二个是绝配. 

3: vue.js + element-ui 官方文档

vue.js  https://cn.vuejs.org/v2/guide/ 

element-ui  https://element.eleme.cn/#/zh-CN/component/installation 

文档是最好的学习资料,加上万能的百度,Google ,入门开发项目足够了。

一 : 如何创建vue.js项目? 

1、最简单的方法, 导入js文件即可 ,在html中即可直接使用vue+element-ui 开发。

  1. <!--引入vue-->
  2. <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
  3. <!-- 引入样式 -->
  4. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  5. <!-- 引入组件库 -->
  6. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  7. <!--axios-->
  8. <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>

2、使用vue-cli 和webpack 创建项目

推荐博客: https://blog.csdn.net/weixin_40877388/article/details/80911934

vue-cli 俗称手脚架, 听名字就知道是创建Vue项目用的, 后台角度看,和spring手脚架创建SpringBoot项目一样,一站式

webpack是打包机,你的项目需要发布到服务器上面,如阿里云项目, webpack提供了打包功能, 运行npm bulid 即可打包->dist包

这里类比一下:相当于maven的打包功能,maven打包成war/jar,而vue项目打包成dist文件 ,我们可以把war/jar包扔到阿里云的tomcat中,同样也可以把dist扔到tomcat(部署还可以是其他方式,这只是其中一种),那么vue项目就跑起来了,“一站式”创建项目,部署项目, 是何其简单。

注意一点: vue项目的src适合放xxx.vue组件化的文件, 如果你的项目是html(也就是导入js直接使用),html文件应该存放在static目录中,否则打包失败,打包不了src项目下的html文件。

提示一下: 作为vue开发新手,暂时不用关注node.js在其中是什么角色, 同样如果你不着急进入项目开发,你应该仔细看vue的官方文档, 开始的时候使用js导入到你的html开发项目即可, vue的模块化实现高可用,易管理,但是需要配置路由等,一上来就玩这个,容易蒙。

二: Vue.js的使用 

这里介绍Vue.js的虚拟DOM技术,配合element-ui使用,如果你还没来得及看文档,同样你可以体验vue的魅力

效果图如下,这个是mobile web ,采用vue+element开发的。

 

1、Vue的DOM技术

用户资料中,用户信息如何绑定? 阅读下面的代码即可,强调几点

1、单独使用Vue的时候, this代表vue对象,如果同时在vue中使用this, 需要注意this是什么, 如果还需要使用this(vue),应该在

this变化外,let _this = this ,在jquery里使用_this 来区别 

2、axios需要导入axios.min.js(axios.js的压缩版)文件,相当于ajax的作用, 用于数据绑定,Vue提供了<v-if>、<v-else>、

<v-for>  <v-bind> <v-model> 等逻辑语句,用户可以根据需要使用,利于开发动态html操作。

3、判断通常使用=== 运算符, 如< div v-if record.isShow === 1 > .... </div>

4、Vue可以通过v-bind(简写 ‘ : ’ ) 绑定class, style, src等元素属性, 如  <img :src = ' imgSrc ' width='30px'></img> imgSrc为vue

属性, 你只要在某方法修改imgSrc,即可改变img的显示效果

  1. <!--html body-->
  2. <html>
  3. <meta charset="UTF-8">
  4. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  5. <!--禁止缩放, 防止在苹果浏览器上显示问题-->
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  7. <title>用戶詳情</title>
  8. <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
  9. <link rel="stylesheet" href="../common/css/element/index.css">
  10. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  11. <script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>
  12. //.....
  13. <body>
  14. <div id='app'>
  15. <!--使用{{}} 访问vue对象的属性,这个是动态绑定,属性值改变会随着改变-->
  16. <!-- @click 点击事件,访问的是vue对象的方法 --->
  17. <div class="info" @click="dialogVisible = true">
  18. <span class="username">昵稱</span>
  19. <span class="username-show">{{record.username}}</span>
  20. <span class="username-icon"> <i class="el-icon-edit" @click="dialogVisible = true"></i></span>
  21. </div>
  22. <div class="info">
  23. <span class="email">郵箱地址</span>
  24. <span class="email-show">{{record.email}}</span>
  25. </div>
  26. <div class="info" @click="resetPwd()">
  27. <span class="password">重置密碼</span>
  28. <span class="password-show">**********</span>
  29. <span class="password-icon"> <i class="el-icon-arrow-right" @click="resetPwd()"></i>
  30. </span>
  31. </div>
  32. <div>
  33. </body>
  34. <!--body外,html中-->
  35. <!--定义一个vue对象,this通常就代表这个vue对象-->
  36. new Vue({
  37. el:'#app', // 1、el#指定id元素,
  38. data(){ //2、data为数据
  39. return{ //return 处理页面数据,包括axios请求结果数据, 在methods中可以直接this.属性
  40. record:'' , //初始化为空即可
  41. },
  42. },
  43. mounted() { //3、初始化页面调用该方法,类似js的reload
  44. init();
  45. },
  46. methods: { // 4、方法
  47. init(){
  48. //初始化页面数据
  49. //请求参数
  50. let params = {
  51. user_id:this.user_id,
  52. token:this.token,
  53. device_id:this.com.device_id,
  54. language:this.com.language,
  55. source:this.com.source,
  56. version:this.com.version
  57. };
  58. //md5 数据加密,这个是加密算法,写到其他js文件中了.
  59. let sign = getSign(params);
  60. /**
  61. 5、vue的axios,注意导入js文件,类似ajax
  62. get请求,headers是头部数据,保存一个signature,进行数据验签
  63. params 存放请求参数
  64. */
  65. axios
  66. .get(apiPath+`users/getUserInfo`,
  67. {
  68. params:params,
  69. headers:{'signature':sign }
  70. })
  71. .then(response => {
  72. //6、这里的意思是把返回数据保存到record,html绑定值的元素会自动DOM
  73. this.record = response.data.data;
  74. this.username = this.record.username;
  75. })
  76. .catch(function (error) { // 请求失败处理
  77. console.log(error);
  78. });
  79. },
  80. }
  81. });

三、 element-ui 组件 

这是一套vue的开发组件, 配合vue使用非常有, 组件包括了'布局'、‘按钮’、‘文件上传’、‘图标库’、‘按钮’、‘表单’、‘日期选择器’等等等组件, 很丰富,copy他的html 代码, 给vue添加属性(return{//添加位置 })和方法(methods{//位置}) 即可使用。同时你可以重写她的css, 甚至主题,用了之后你会爱不释手, 使用上简单高效。

 需要注意的地方:

1、element-ui 使用几次就上手了,都差不多使用, 但前提是熟练使用vue.js

2、element-ui 一般不能和bootstrap那样单独使用, 因为她的元素需要给vue对象添加vue属性和方法, 结合Vue.js就强大了.

3、无论是html 引入js 还是在vue模块化中一样使用, 其实模块化也没啥

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/661968
推荐阅读