public void WriterTo(JavascriptTextWriter writer) { // Opening an async closure to run script writer.WriteStartJsFunctionSignature(string.Empty); writer.WriteStartJsFunctionDefinition(); writer.WriteStartJsFunctionSignature("function", "async"); writer.WriteEndJsFunctionSignature(); writer.WriteStartJsFunctionBlock(); // Statements to register Vue Components foreach (var component in _components) { writer.WriteStartJsStatement(); _serializer.Serialize(writer, component); writer.WriteEndJsStatement(); } // Statement to create Vue Application writer.WriteStartJsVariableStatement(_name); writer.WriteStartJsFunctionDefinition(); writer.WriteStartJsFunctionSignature("Vue", "new"); _serializer.Serialize(writer, _options); writer.WriteEndJsFunctionSignature(); writer.WriteEndJsFunctionDefinition(); writer.WriteEndJsStatement(); // Closing Async Closure and invoking writer.WriteEndJsFunctionBlock(); writer.WriteEndJsFunctionDefinition(); writer.WriteEndJsFunctionSignature(); writer.WriteStartJsFunctionSignature(string.Empty); writer.WriteEndJsFunctionSignature(); }
public override void WriteJavascript( JavascriptTextWriter writer, IVueOptions value, JsonSerializer serializer) { writer.WriteStartJsObject(); if (null != value.El) { writer.WriteStartJsMember("el"); writer.WriteJsValue(value.El); writer.WriteEndJsMember(); } if (null != value.Template) { writer.WriteStartJsMember("template"); writer.WriteJsValue(value.Template); writer.WriteEndJsMember(); } if (value.Data?.Count > 0) { writer.WriteStartJsMember("data"); writer.WriteStartJsFunctionDefinition(); writer.WriteStartJsFunctionSignature("function"); writer.WriteEndJsFunctionSignature(); writer.WriteStartJsFunctionBlock(); writer.WriteStartJsReturnStatement(); writer.WriteStartJsObject(); foreach (var data in value.Data) { serializer.Serialize(writer, data); } writer.WriteEndJsObject(); writer.WriteEndJsStatement(); writer.WriteEndJsFunctionBlock(); writer.WriteEndJsFunctionDefinition(); writer.WriteEndJsMember(); } if (value.Props?.Count > 0) { writer.WriteStartJsMember("props"); writer.WriteStartJsObject(); foreach (var prop in value.Props) { serializer.Serialize(writer, prop); } writer.WriteEndJsObject(); writer.WriteEndJsMember(); } if (value.Methods?.Count > 0) { writer.WriteStartJsMember("methods"); writer.WriteStartJsObject(); foreach (var method in value.Methods) { serializer.Serialize(writer, method); } writer.WriteEndJsObject(); writer.WriteEndJsMember(); } if (value.Computed?.Count > 0) { writer.WriteStartJsMember("computed"); writer.WriteStartJsObject(); foreach (var property in value.Computed) { serializer.Serialize(writer, property); } writer.WriteEndJsObject(); writer.WriteEndJsMember(); } if (value.LifecycleHooks?.Count > 0) { foreach (var method in value.LifecycleHooks) { serializer.Serialize(writer, method); } } writer.WriteEndJsObject(); }