Vue 去脚手架插件,自动加载vue文件,style怎么办
书接上上会,因为当时也没想好怎么办,所以装聋作哑的忽略了Vue文件中的Style,Vue的做法我看着晕乎乎的,细想的话,无非就是自动填写到dom中,所担心的无非是命名冲突。
在一个项目中(像我这种自娱自乐的项目中)加载的自定义组件是不会重名的(应该不会吧,反正就是让他不会的意思),那就每个Vue中加组件名做前缀,然后duang,写入dom。

规规矩矩的放在head里,齐活了
更新一下我那个牛逼的文件
// vue插件引入
Vue.use({
// 插件初始化函数
install: function(Vue, options) {
Vue.CptsLoader = {
isSaveTemplateToLocalStorage: false,
ProjectVersion: "1.0.0.0",
checkVersion: function() {
var ver = localStorage.getItem(window.location.href + 'ProjectVersion')
if(!ver || this.ProjectVersion !== ver) {
localStorage.clear()
localStorage.setItem(window.location.href + 'ProjectVersion', this.ProjectVersion)
}
}
}
// 包装new Vue()
Vue.create = function(options) {
Vue.CptsLoader.checkVersion()
// 加载options的components
importCpts(options)
var vm = new Vue(options)
Vue.http.options.emulateJSON = true
return vm
}
Vue.loadvue = function(options) {
return loadVue(options)
}
//加载options的components
importCpts = function(options) {
//缓存components
var cpts = options.components
if(cpts !== null){
//判断存在components列表并且是数组
if(Array.isArray(cpts)) {
//建立一个缓存空对象
var tmpcpts = null
//循环加载每一项组件
cpts.forEach((cptname) => {
//加载Vue文件
var newCpt = loadVue(cptname) if(newCpt) {
if(!tmpcpts)
tmpcpts = {}
tmpcpts[newCpt.name] = newCpt
}
})
//回填到options
options.components = tmpcpts
}
}
} loadVue = function(name) {
//生成路径
var url = window.location.href + name + ".vue"
//读取本地存储
var content = Vue.CptsLoader.isSaveTemplateToLocalStorage ? localStorage.getItem(url) : null
if(!content) {
RequestVue(url, (res) => {
content = res
})
}
//读取失败,返回空
if(!content) return null Vue.CptsLoader.isSaveTemplateToLocalStorage && localStorage.setItem(url, content) //读取成功,解析 //获取script
var options = eval("(" + GetTagcontent('script', content) + ")") //嵌套调用加载子组件
options && options.components && importCpts(options) var temp = GetTagcontent('template', content) //加载css
var css = GetTagcontent('style',content) if(css.trim().length>0 && !document.getElementById(options.name + "-style")){
var newstyle = document.createElement('style')
newstyle.id = options.name + "-style"
newstyle.innerHTML = css
document.head.appendChild(newstyle)
} //加载模板
options.template = temp return options
} GetTagcontent = function(tag, content) {
var reg = new RegExp("<" + tag + ">([\\s\\S]*)<\/" + tag + ">")
if(reg.test(content)) {
return RegExp.$1
}
return ""
} RequestVue = function(url, cb) {
var request = new XMLHttpRequest()
request.open('GET', url, false)
request.send(null)
request.status === 200 && cb(request.responseText)
}
}
})
Vue 去脚手架插件,自动加载vue文件,style怎么办的更多相关文章
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...
- Spring boot 国际化自动加载资源文件问题
Spring boot 国际化自动加载资源文件问题 最近在做基于Spring boot配置的项目.中间遇到一个国际化资源加载的问题,正常来说只要在application.properties文件中定义 ...
- 前端 | 页面触底自动加载 Vue 组件
不管是 web 端还是移动端,信息流都是现在很流行的信息展示方式.信息流经常搭配自动加载一起使用以获得更好的使用体验. 最近在使用 Vue 开发过程中也遇到了首页信息流自动加载的需求.大致了解了一下几 ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(12):XML配置自动扫描包,自动加载*.properties文件
一.XML和注解组合使用 前几篇的测试案例都是在Java类中配置,现在换一种使用方式,在XML中配置,使Spring IoC容器在启动之后自动去扫描配置的包路径,扫描加载指定路径下的propertie ...
- php自动加载类文件探讨,spl_autoload_register自动加载原理
spl_autoload_register函数是实现自动加载未定义类功能的的重要方法,所谓的自动加载意思就是 我们的new 一个类的时候必须先include或者require的类文件,如果没有incl ...
- php中 __autoload函数 自动加载类文件机制
魔术函数,自动加载机制function __autoload($class_name) { //自动传递的是类名$path = str_replace('_', '/', $class_name) ...
- Intellij Idea自动加载改动文件和自动自动热部署加载
1:准备原料 我的Intellij Idea的版本是15. 之后tomcat自动加载修,你只需要在浏览器刷新一下页面即可. ************************************** ...
- composer自动加载一个文件后必须执行命令composer dump-autoload
"autoload": { "classmap": [ "database" ], "psr-4": { "A ...
- Vue 去脚手架插件,自动加载vue文件
接上回 一些本质 本质上,去脚手架也好,读取vue文件也好,无非是维护options,每个Vue对象的初始化配置对象不触及Vue内部而言,在外部想怎么改都是可以的,只要保证options的正确,一切都 ...
随机推荐
- Python之List和Tuple类型(入门3)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407682.html 本文出自:[Edwin博客园] Python之List和Tuple类型 1. Pyth ...
- Android(java)学习笔记40:WindowManager 中LayoutParams的各种属性
1. WindowManager 中LayoutParams的各种属性 WindowManager.LayoutParams 是 WindowManager 接口的嵌套类(内部类):它继承于 View ...
- 【洛谷P1983】车站分级
车站分级 题目链接 首先,可以发现火车停靠站点的大小是没有什么规律的, 火车可以停靠在级别<=当前级别的站点,必须停靠在级别>=当前最高级别的站点 但是所有没有被停靠的站点级别一定比所有被 ...
- 【洛谷P1351】[NOIP2014]联合权值
联合权值 题目链接 首先,直接两重循环暴力枚举得了70分 然后发现第二重循环可以记忆化一下 记忆一下每个点的子节点的权值和.最大值. 次大值(为了处理该点的父节点权值恰好为最大值) 具体看代码 #in ...
- 【洛谷P4342】[IOI1998]Polygon
Polygon 比较裸的环形DP(也可以说是区间DP) 将环拆成链,复制到后面,做区间DP即可 #include<iostream> #include<cstdio> usin ...
- 【luogu P2860 [USACO06JAN]冗余路径Redundant Paths】 题解
题目链接:https://www.luogu.org/problemnew/show/P2860 考虑在无向图上缩点. 运用到边双.桥的知识. 缩点后统计度为1的点. 度为1是有一条路径,度为2是有两 ...
- Android学习笔记_52_全面了解Android开发规范:性能及UI优化
一.Android编码规范 1.java代码中不出现中文,最多注释中可以出现中文 2.局部变量命名.静态成员变量命名 只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写 3.常量命名 只能 ...
- Mac通过域名查询IP地址
Mac通过域名查询IP地址 方法一:使用Mac自带的"网络实用工具" 步骤: 搜索"网络使用工具",并打开: 点击LookUp,输入互联网地址,点击Lookup ...
- some small knowledge
cookie 增查 <!--1.语义化标签的作用--> <!--1.1 从开发角度考虑是提高代码的可读性可维护性--> <!--1.2 网站的发布者:seo 搜索引擎优化 ...
- CSS&JS定位器
一.CssSelector定位器 1.概述 CssSelector是效率很高的元素定位方法,Selenium官网的Document里极力推荐使用CSS locator,而不是XPath来定位元素,原因 ...