博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue作为组件在前端项目中的应用技巧
阅读量:7236 次
发布时间:2019-06-29

本文共 1983 字,大约阅读时间需要 6 分钟。

为什么要使用vue

因为现有的前端项目中JS在使用方面过于混乱,存在大量重复调用和代码冲突(同一段代码可能在10个不同的地方都有写到,被触发的时候,管理异常困难),所以我认识到之前单纯依靠操作DOM的方式是有问题的,应切换到以数据为主。

所以,我考虑将前端的部分功能抽象出来使其成为通用的组件,可以在任意地方方便地被调用,并且具备可扩展性和易用性。

vue的优点
  • 1.完备的中文文档
  • 2.容易上手
  • 3.体积小 (只有<50kb)
  • 4.基于组件化的开发方式
  • 5.优秀的代码可读性、可维护性

期望的实现方式

  • 前后端代码分离,组件的vue模板代码不出现在php模板中,仅定义一个特定标签,加载特定的JS文件就可以实现组件加载,使其成为插拔式使用的组件。

通过$mount方法将vue对象挂载到某个ID的dom节点上

// hideLogin 可以是用来控制登录弹窗的参数之一
var LoginComponent = require('loginForm.js');
var Vue = require('vue');var loginForm = require('loginForm.vue');var login = exports;var form;/** * 初始化登录组件 */login.loadLoginForm = function () {    if(form){        return;    }    form = new Vue(loginForm);    form.$mount('#loginForm');};

登录组件 + 业务调用

  • Vue.set() 数据传递 业务回调

弹窗控制组件

  • 组件和父子组件,组件通信,内部生命周期

pop.js

var Vue = require('vue');var pop = require('pop.vue');new Vue({    el: '#pop',    render: function (h) {        return h(pop)    }});

pop.vue // 父组件

子组件(popA.vue)设置一个methods 来给父组件传值

methods: {            closeMsg: function (type) {                this.$emit("listenPop", type);            }        }

城市选择组件

  • 侦听器 watch:当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的
  • 过滤器 filter
// watch方法监控该对象,当数据发生变化的时候,触发function    watch: {        list: function(val) {            this.doSm();        },        history: function(val) {            if(val){                this.doSm();            }        }    }
// 使用filter 来对接口返回的数据进行处理    constructUrl: function (list) {        var vm = this;        return list.filter(function (item) {            if (if (vm.type == '1') {)            return item['url'] = 'javascript:;';        })    }

相关知识点应用

  • 安装版本受webpack影响
  • 因项目原因不支持babel转换es6语法,因此只能用es5
  • 初始化,基础语法,属性绑定,数据绑定,事件绑定
  • mount挂载
  • 生命周期钩子 (create,mount,update,destroy)
  • 组件和父子组件,组件通信,内部生命周期
  • Vue.set() 数据传递 业务回调
  • 侦听器 watch:当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的
  • 过滤器 filter

转载地址:http://fxgfm.baihongyu.com/

你可能感兴趣的文章
escape(s, t)函数的实现
查看>>
WIN内核线程池函数
查看>>
机器学习常见算法个人总结(面试用)
查看>>
T4 好用的Vs扩展
查看>>
Swift3.0 split函数切割字符串
查看>>
字典树
查看>>
单例模式的七种写法
查看>>
extjs_08_界面布局
查看>>
卷积神经网络(CNN)代码实现(MNIST)解析
查看>>
git 在命令行与图形状态下使用详情
查看>>
爱上MVC~Web.Config的Debug和Release版本介绍
查看>>
linux操作系统中oracle数据库的密码过期问题解决
查看>>
Spring中Bean的五个作用域
查看>>
hadoop之 distcp(分布式拷贝)
查看>>
Java后端程序员1年工作经验总结
查看>>
使用Vundle管理配置Vim的插件
查看>>
JDBC连接池&DBUtils使用
查看>>
可以通过shadowserver来查看开放的mdns(用以反射放大攻击)——中国的在 https://mdns.shadowserver.org/workstation/index.html...
查看>>
IOS系统控件高度
查看>>
Flink - ResultPartition
查看>>