Maison >développement back-end >tutoriel php >Sur la façon d'écrire un blog en utilisant Vue-laravel pour séparer le front-end et le back-end
Cet article présente principalement la méthode d'utilisation de Vue-laravel pour séparer le front-end et le back-end pour écrire un blog. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer. 🎜>
Pendant cette période, j'ai appris Vue et écrit un petit blog. J'ai utilisé Laravel pour l'interface backend. J'ai rencontré de nombreux problèmes dans le processus. Je vais le résumer ici et joindre un lien de code : (je ne l'ai pas fait. j'ai déjà acheté le nom de domaine, vous pouvez donc simplement regarder le code OK)https://github.com/rencong/bl...
https://github.com/rencong/bl.. .
liaison bidirectionnelle entre les composants . J'appelle le composant paginateur sur la page de liste et lui transmets les informations de pagination. Par conséquent, les propriétés des accessoires du composant paginateur ne changent pas.
La raison est que la valeur des accessoires ne peut pas être modifiée dans le composant
et que la valeur modifiée ne sera pas synchronisée avec la couche externe du composant . Synchroniser la modification des accessoires en dehors du composant :
props: ['current', 'last'], watch: { current(val) {//监听current的变更,并同步带currentPage中 this.currentPage = val; }, last(val) { this.lastPage = val; } }, data() { return { currentPage: this.current, lastPage: this.last } }Ici, il me suffit de synchroniser la modification des accessoires en dehors du paginateur. Si vous devez notifier l'extérieur du paginateur, veuillez vous référer à comment. pour implémenter la liaison bidirectionnelle des accessoires de composants dans Vue2 Certainement 2. Éditeur Markdown Je pense que l'éditeur de texte riche de segmentfault est très sympa, alors j'en ai trouvé un similaire, simpleMDE
Ci-joint est la configuration traduite et plus complète de simpleMDE
Pendant le processus d'utilisation, un article que j'ai trouvé très utile est SimpleMDE Editor + Extract HTML + Beautify Output
Le seul point à noter est que lors de l'introduction de fontawesome dans vue, utilisez le code suivant
npm install font-awesome --save-dev import 'font-awesome/scss/font-awesome.scss'
npm install simplemde --save
bower install simplemde --save
<link rel="stylesheet" href="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.css"> <script src="https://cdn.jsdelivr.net/simplemde/latest/simplemde.min.js"></script>Ici, je l'utilise très facilement dans laravel, juste. comme les étapes mentionnées sur GitHub, mais en vue, utilisez v- Le modèle ne peut pas obtenir le contenu du texte riche. Le résultat final de la recherche est que vous devez obtenir manuellement le contenu de l'éditeur et l'attribuer aux variables.
this.markdown = new SimpleMDE({...}); //获取编辑器的值 saveArticle() { this.params.content = this.markdown.value(); } //给编辑器赋值 this.markdown.value(this.params.content);De plus, simplemde peut également personnaliser la barre d'outils. Les étudiants intéressés peuvent consulter son code source. Je l'ai personnalisé après avoir regardé le code source. Je vais vous montrer un exemple de définition du titre 3. Vue affiche les faits saillants
this.markdown = new SimpleMDE({ autoDownloadFontAwesome: false, element: that.$refs.markdownCreate, status: false, toolbar: [ { name: 'title1', action: function customFunction(editor) { var cm = editor.codemirror; that._toggleHeading(cm, "title", 1); }, className: 'glyphicon glyphicon-align-left', title: 'title1' }, { name: 'title2', action: function customFunction(editor) { var cm = editor.codemirror; that._toggleHeading(cm, "title", 2); }, className: 'glyphicon glyphicon-align-left', title: 'title2' }, ] }); _toggleHeading(cm, direction, size) { if (/editor-preview-active/.test(cm.getWrapperElement().lastChild.className)) return; var startPoint = cm.getCursor("start"); var endPoint = cm.getCursor("end"); var textNew = ''; for (var i = startPoint.line; i <= endPoint.line; i++) { (function (i) { var text = cm.getLine(i); textNew += text; })(i); } if (size === 1) { textNew === '' ? textNew = "标题文字\n====" : textNew += "\n===="; } else if (size === 2) { textNew === '' ? textNew = "标题文字\n----" : textNew += "\n----"; } cm.replaceSelection(textNew); cm.focus(); }
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/styles/default.min.css"> <script src="//cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script>L'utilisation est
<link rel="stylesheet" href="http://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/styles/default.min.css"> <script src="http://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.12.0/build/highlight.min.js"></script> main.js中 Vue.directive('highlight', function (el) { let blocks = el.querySelectorAll('pre code'); blocks.forEach((block) => { hljs.highlightBlock(block) }) });
<p v-html="Marked" v-highlight>
4. Connectez-vous et inscrivez-vous
5. Téléchargez sur GitHub
npm install
une erreur sera signalée à cette fois npm run dev
Pour la solution, veuillez vous référer à la configuration postcss Error: No PostCSS Config found in...
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez payer. attention au site PHP chinois !
Recommandations associées :
Utilisation des macros macroables dans LaravelIntroduction à la façon de créer un serveur de ressources reposant en peu de tempsCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!