喵了个咪 5 years ago
parent
commit
79bc8a7fe9
  1. 3
      .gitignore
  2. 2550
      .idea/workspace.xml
  3. 12
      govue2/bindata.go
  4. 1
      govue2/govue-js-src/.gitignore
  5. 21
      govue2/govue-runtime/govue.js
  6. 9
      govue2/govue-runtime/header.js
  7. 3
      govue2/govue-runtime/runtime.js
  8. 10
      static/index.html
  9. 224
      static/js/base64.js
  10. 20
      static/js/govue.js

3
.gitignore

@ -13,4 +13,5 @@
*.out
.idea
build
*.json
*.json
node_modules

2550
.idea/workspace.xml
File diff suppressed because it is too large
View File

12
govue2/bindata.go
File diff suppressed because it is too large
View File

1
govue2/govue-js-src/.gitignore

@ -0,0 +1 @@
node_modules

21
govue2/govue-runtime/govue.js

@ -40476,28 +40476,33 @@ exports.SourceNode = require('./lib/source-node').SourceNode;
},{"./lib/source-map-consumer":121,"./lib/source-map-generator":122,"./lib/source-node":123}],126:[function(require,module,exports){
module.exports={
"_from": "vue-server-renderer@^2.6.11",
"_args": [
[
"vue-server-renderer@2.6.11",
"C:\\Users\\admin\\go\\src\\git.ouxuan.net\\3136352472\\go-service-template\\govue2\\govue-js-src"
]
],
"_from": "vue-server-renderer@2.6.11",
"_id": "vue-server-renderer@2.6.11",
"_inBundle": false,
"_integrity": "sha512-V3faFJHr2KYfdSIalL+JjinZSHYUhlrvJ9pzCIjjwSh77+pkrsXpK4PucdPcng57+N77pd1LrKqwbqjQdktU1A==",
"_location": "/vue-server-renderer",
"_phantomChildren": {},
"_requested": {
"type": "range",
"type": "version",
"registry": true,
"raw": "vue-server-renderer@^2.6.11",
"raw": "vue-server-renderer@2.6.11",
"name": "vue-server-renderer",
"escapedName": "vue-server-renderer",
"rawSpec": "^2.6.11",
"rawSpec": "2.6.11",
"saveSpec": null,
"fetchSpec": "^2.6.11"
"fetchSpec": "2.6.11"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.11.tgz",
"_shasum": "be8c9abc6aacc309828a755c021a05fc474b4bc3",
"_spec": "vue-server-renderer@^2.6.11",
"_spec": "2.6.11",
"_where": "C:\\Users\\admin\\go\\src\\git.ouxuan.net\\3136352472\\go-service-template\\govue2\\govue-js-src",
"author": {
"name": "Evan You"
@ -40505,7 +40510,6 @@ module.exports={
"bugs": {
"url": "https://github.com/vuejs/vue/issues"
},
"bundleDependencies": false,
"dependencies": {
"chalk": "^1.1.3",
"hash-sum": "^1.0.2",
@ -40516,7 +40520,6 @@ module.exports={
"serialize-javascript": "^2.1.2",
"source-map": "0.5.6"
},
"deprecated": false,
"description": "server renderer for Vue 2.0",
"devDependencies": {
"vue": "file:../.."

9
govue2/govue-runtime/header.js

@ -1,10 +1,10 @@
var GV = {};
var isBrowser = false;
var Promise;
var GoUseCallback;
var GoUse = function (cb) {
GoUseCallback = "with(this){(" + cb.toString() + ")()}";
}
var net = {
request: function (c) {
var url = c["url"];
@ -76,11 +76,6 @@ var net = {
statusCode: statusCode + "",
})
}
// complete && complete({
// data: result,
// statusCode: statusCode + "",
// })
}
};
@ -144,7 +139,7 @@ var GetGoVueTemplate = function (raw) {
return
}
var content = raw.substring(start + tagStart.length, end);
var template = raw.substring(0, start) + "<!--vue-ssr-outlet-->\n{{{GoVueData}}}" + raw.substr(end + tagEnd.length);
var template = raw.substring(0, start) + "<!--vue-ssr-outlet-->\n{{{GoVueTemplate}}}\n{{{GoVueData}}}" + raw.substr(end + tagEnd.length);
return {
template: template,
content: content,

3
govue2/govue-runtime/runtime.js

@ -19,7 +19,8 @@ GV.init(function (_require) {
if(!context){
context = {}
}
context.GoVueData = "<go-vue-data style='display: none'>" + Base64Encode(ctx.content) + "</go-vue-data>"
context.GoVueTemplate = "<go-vue-template style='display: none'>" + Base64Encode(encodeURIComponent(ctx.content)) + "</go-vue-template>"
context.GoVueData = "<go-vue-data style='display: none'>" + Base64Encode(encodeURIComponent(JSON.stringify(app.$data))) + "</go-vue-data>"
renderer.renderToString(app, context, function (err, html) {
if (err) {
throw err

10
static/index.html

@ -79,9 +79,9 @@
selected: 'A',
options: [
{ text: 'One', value: 'A' },
{ text: 'Two', value: 'B' },
{ text: 'Three', value: 'C' }
{text: 'One', value: 'A'},
{text: 'Two', value: 'B'},
{text: 'Three', value: 'C'}
]
},
computed: {
@ -93,12 +93,12 @@
},
methods: {
click: function (a) {
alert("点击触发:"+a);
alert("点击触发:" + a);
},
},
});
GoVueMount(app, {
title: "123"
})
}, "body > div")
</script>
</html>

224
static/js/base64.js

@ -1,224 +0,0 @@
/*
* base64.js
*
* Licensed under the BSD 3-Clause License.
* http://opensource.org/licenses/BSD-3-Clause
*
* References:
* http://en.wikipedia.org/wiki/Base64
*/
;(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined'
? module.exports = factory(global)
: typeof define === 'function' && define.amd
? define(factory) : factory(global)
}((
typeof self !== 'undefined' ? self
: typeof window !== 'undefined' ? window
: typeof global !== 'undefined' ? global
: this
), function(global) {
'use strict';
// existing version for noConflict()
global = global || {};
var _Base64 = global.Base64;
var version = "2.5.2";
// if node.js and NOT React Native, we use Buffer
var buffer;
if (typeof module !== 'undefined' && module.exports) {
try {
buffer = eval("require('buffer').Buffer");
} catch (err) {
buffer = undefined;
}
}
// constants
var b64chars
= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var b64tab = function(bin) {
var t = {};
for (var i = 0, l = bin.length; i < l; i++) t[bin.charAt(i)] = i;
return t;
}(b64chars);
var fromCharCode = String.fromCharCode;
// encoder stuff
var cb_utob = function(c) {
if (c.length < 2) {
var cc = c.charCodeAt(0);
return cc < 0x80 ? c
: cc < 0x800 ? (fromCharCode(0xc0 | (cc >>> 6))
+ fromCharCode(0x80 | (cc & 0x3f)))
: (fromCharCode(0xe0 | ((cc >>> 12) & 0x0f))
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
+ fromCharCode(0x80 | ( cc & 0x3f)));
} else {
var cc = 0x10000
+ (c.charCodeAt(0) - 0xD800) * 0x400
+ (c.charCodeAt(1) - 0xDC00);
return (fromCharCode(0xf0 | ((cc >>> 18) & 0x07))
+ fromCharCode(0x80 | ((cc >>> 12) & 0x3f))
+ fromCharCode(0x80 | ((cc >>> 6) & 0x3f))
+ fromCharCode(0x80 | ( cc & 0x3f)));
}
};
var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
var utob = function(u) {
return u.replace(re_utob, cb_utob);
};
var cb_encode = function(ccc) {
var padlen = [0, 2, 1][ccc.length % 3],
ord = ccc.charCodeAt(0) << 16
| ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8)
| ((ccc.length > 2 ? ccc.charCodeAt(2) : 0)),
chars = [
b64chars.charAt( ord >>> 18),
b64chars.charAt((ord >>> 12) & 63),
padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
];
return chars.join('');
};
var btoa = global.btoa ? function(b) {
return global.btoa(b);
} : function(b) {
return b.replace(/[\s\S]{1,3}/g, cb_encode);
};
var _encode = function(u) {
var isUint8Array = Object.prototype.toString.call(u) === '[object Uint8Array]';
return isUint8Array ? u.toString('base64')
: btoa(utob(String(u)));
}
var encode = function(u, urisafe) {
return !urisafe
? _encode(u)
: _encode(String(u)).replace(/[+\/]/g, function(m0) {
return m0 == '+' ? '-' : '_';
}).replace(/=/g, '');
};
var encodeURI = function(u) { return encode(u, true) };
// decoder stuff
var re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
var cb_btou = function(cccc) {
switch(cccc.length) {
case 4:
var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
| ((0x3f & cccc.charCodeAt(1)) << 12)
| ((0x3f & cccc.charCodeAt(2)) << 6)
| (0x3f & cccc.charCodeAt(3)),
offset = cp - 0x10000;
return (fromCharCode((offset >>> 10) + 0xD800)
+ fromCharCode((offset & 0x3FF) + 0xDC00));
case 3:
return fromCharCode(
((0x0f & cccc.charCodeAt(0)) << 12)
| ((0x3f & cccc.charCodeAt(1)) << 6)
| (0x3f & cccc.charCodeAt(2))
);
default:
return fromCharCode(
((0x1f & cccc.charCodeAt(0)) << 6)
| (0x3f & cccc.charCodeAt(1))
);
}
};
var btou = function(b) {
return b.replace(re_btou, cb_btou);
};
var cb_decode = function(cccc) {
var len = cccc.length,
padlen = len % 4,
n = (len > 0 ? b64tab[cccc.charAt(0)] << 18 : 0)
| (len > 1 ? b64tab[cccc.charAt(1)] << 12 : 0)
| (len > 2 ? b64tab[cccc.charAt(2)] << 6 : 0)
| (len > 3 ? b64tab[cccc.charAt(3)] : 0),
chars = [
fromCharCode( n >>> 16),
fromCharCode((n >>> 8) & 0xff),
fromCharCode( n & 0xff)
];
chars.length -= [0, 0, 2, 1][padlen];
return chars.join('');
};
var _atob = global.atob ? function(a) {
return global.atob(a);
} : function(a){
return a.replace(/\S{1,4}/g, cb_decode);
};
var atob = function(a) {
return _atob(String(a).replace(/[^A-Za-z0-9\+\/]/g, ''));
};
var _decode = buffer ?
buffer.from && Uint8Array && buffer.from !== Uint8Array.from
? function(a) {
return (a.constructor === buffer.constructor
? a : buffer.from(a, 'base64')).toString();
}
: function(a) {
return (a.constructor === buffer.constructor
? a : new buffer(a, 'base64')).toString();
}
: function(a) { return btou(_atob(a)) };
var decode = function(a){
return _decode(
String(a).replace(/[-_]/g, function(m0) { return m0 == '-' ? '+' : '/' })
.replace(/[^A-Za-z0-9\+\/]/g, '')
);
};
var noConflict = function() {
var Base64 = global.Base64;
global.Base64 = _Base64;
return Base64;
};
// export Base64
global.Base64 = {
VERSION: version,
atob: atob,
btoa: btoa,
fromBase64: decode,
toBase64: encode,
utob: utob,
encode: encode,
encodeURI: encodeURI,
btou: btou,
decode: decode,
noConflict: noConflict,
__buffer__: buffer
};
// if ES5 is available, make Base64.extendString() available
if (typeof Object.defineProperty === 'function') {
var noEnum = function(v){
return {value:v,enumerable:false,writable:true,configurable:true};
};
global.Base64.extendString = function () {
Object.defineProperty(
String.prototype, 'fromBase64', noEnum(function () {
return decode(this)
}));
Object.defineProperty(
String.prototype, 'toBase64', noEnum(function (urisafe) {
return encode(this, urisafe)
}));
Object.defineProperty(
String.prototype, 'toBase64URI', noEnum(function () {
return encode(this, true)
}));
};
}
//
// export Base64 to the namespace
//
if (global['Meteor']) { // Meteor.js
Base64 = global.Base64;
}
// module.exports and AMD are mutually exclusive.
// module.exports has precedence.
if (typeof module !== 'undefined' && module.exports) {
module.exports.Base64 = global.Base64;
}
else if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define([], function(){ return global.Base64 });
}
// that's it!
return {Base64: global.Base64}
}));

20
static/js/govue.js

@ -1,9 +1,21 @@
function GoVueMount(app) {
var sourceTemplate = document.getElementsByTagName("go-vue-data");
window.isBrowser = true;
function GoVueMount(app, ctx, el) {
var sourceTemplate = document.getElementsByTagName("go-vue-template");
var GoVueHTML = "";
if (sourceTemplate.length > 0) {
GoVueHTML = atob(sourceTemplate[0].innerHTML)
GoVueHTML = decodeURIComponent(atob(sourceTemplate[0].innerHTML))
}
var sourceData = document.getElementsByTagName("go-vue-data");
var GoVueData = {};
if (sourceData.length > 0) {
GoVueData = JSON.parse(decodeURIComponent(atob(sourceData[0].innerHTML)))
}
app.$options.template = GoVueHTML;
app.$mount('body > div')
app.$mount(el);
for (var i in GoVueData) {
app[i] = GoVueData[i];
}
}
Loading…
Cancel
Save