diff --git a/docs/.vitepress/sidebar/qianduanjinji.ts b/docs/.vitepress/sidebar/qianduanjinji.ts index 09556ea3..5872a0c6 100644 --- a/docs/.vitepress/sidebar/qianduanjinji.ts +++ b/docs/.vitepress/sidebar/qianduanjinji.ts @@ -59,6 +59,12 @@ export default function qianduanjinjiSidebarGuide() { { text: 'Vue2 基础知识易错点', link: '/frame/vue/basics-knowledge' }, { text: 'Vue2 入门实战项目:快餐系统', link: '/frame/vue/newcomer-project' }, { text: 'Vue-CLI2 跨域请求 Demo(fetch、axios、proxyTable)', link: '/frame/vue/cross-domain-request' }, + { text: 'Vue-CLI2 中的 Vue-Router 和 Vue-Resource 实战', link: '/frame/vue/router-resource' }, + { text: 'Vue-CLI2 中的 render: h => h(App) 解析', link: '/frame/vue/render-app' }, + { text: 'Vue2 生命周期的理解与应用', link: '/frame/vue/vue2-life-cycle' }, + { text: 'Vue2 基础知识点(一)', link: '/frame/vue/vue2-basics-knowledge' }, + { text: 'Vue-CLI2 入门 Demo 游戏', link: '/frame/vue/newcomer-game' }, + { text: 'Vue2 父子组件动态传值', link: '/frame/vue/vue2-component-props' }, ], }, { @@ -136,6 +142,7 @@ export default function qianduanjinjiSidebarGuide() { { text: '开发常用命令行', link: '/other/toolGuide/common-command-line' }, { text: '脚手架及 CLI 工具使用', link: '/other/toolGuide/scaffold-cli' }, { text: 'Web 服务器 live-server 的安装及使用', link: '/other/toolGuide/live-server' }, + { text: '常用的 Markdown 语法格式来编写文章', link: '/other/toolGuide/markdown' }, // { text: 'VS Code 常用快捷键', link: '/other/toolGuide/' }, ], }, diff --git a/docs/posts/growth-record/frame/vue/newcomer-game.md b/docs/posts/growth-record/frame/vue/newcomer-game.md new file mode 100644 index 00000000..286114e7 --- /dev/null +++ b/docs/posts/growth-record/frame/vue/newcomer-game.md @@ -0,0 +1,24 @@ +--- +title: Vue-CLI2 入门 Demo 游戏 +date: 2018-07-05 20:01:01 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue-CLI2 入门 Demo 游戏 + +**第一次使用vue-cli2.x搭建一个小demo游戏。代码文件有很多注释信息,通俗易懂的使用这个脚手架搭建一个入门小项目哈。** + +## 介绍使用 +- 使用默认创建的脚手架; +- 修改App.vue、HelloWorld.vue文件,assets文件夹添加了两张图片; +- 然后编译运行; + +## 运行截图 + + +## 参考文献 +- Web前端网站教程-米斯特吴 + +源码在我的GitHub上:[点击跳转](https://github.com/super456/vue-cli2.x-demo) diff --git a/docs/posts/growth-record/frame/vue/render-app.md b/docs/posts/growth-record/frame/vue/render-app.md new file mode 100644 index 00000000..1229e652 --- /dev/null +++ b/docs/posts/growth-record/frame/vue/render-app.md @@ -0,0 +1,86 @@ +--- +title: 'Vue-CLI2 中的 render: h => h(App) 解析' +date: 2018-07-08 20:08:08 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue-CLI2 中的 render: h => h(App) 解析 +**对于这个,可能es6语法不熟的人很容易产生懵懂,因为我也不熟,所以记录一下,毕竟这也是个重要的知识点。** + +### (一)遇到的问题代码: +``` +new Vue({ + el: '#app', + router,//实例化,表示会使用 + render: h => h(App)//vue2.0写法 + + //以下是vue1.0的写法 + //components: { App },//注册组件信息 + // template: ''//简写的模板调用组件的标签 +}) + +``` +官方的解释很全面但是不是很容易理解:[createElement 参数](https://cn.vuejs.org/v2/guide/render-function.html#%E6%B7%B1%E5%85%A5-data-%E5%AF%B9%E8%B1%A1) + +### (二)代码分解 +将`render: h => h(App)` 根据es6语法分解为: + + `render: h => h(App);` +=== +等价于 + +`render: h => {return h(App);}` +=== +等价于 + +` render: function(h) { return h(App);}` +=== +等价于 +` render: function(createElement) { return createElement(App); }` +=== + +### (三)解析一下这个vue2.0渲染过程: +render函数用来渲染视图,也提供给`el`挂载,所以使用render函数就是为了页面显示出来。 + +1.render 方法是一个函数,在接受传入的参数 h 函数后,返回 `h(App)` 的函数调用结果。 + +2.在创建 vue 实例时,通过调用 render 方法来渲染实例页面的 DOM 结构。 + +3.当vue 在调用 render 方法时,会传入一个 createElement 函数作为参数,h 的实参是 createElement 函数,然后 createElement 会以 `App`为参数进行调用。 + +### (四)写一个createElement函数的demo +创建一个组件,使用createElement函数调用 +``` + + + + + + createElement方法应用 + + + + +

下面会使用createElement方法创建DOM结点

+
+ + + + +``` +运行结果是: + diff --git a/docs/posts/growth-record/frame/vue/router-resource.md b/docs/posts/growth-record/frame/vue/router-resource.md new file mode 100644 index 00000000..199d523f --- /dev/null +++ b/docs/posts/growth-record/frame/vue/router-resource.md @@ -0,0 +1,167 @@ +--- +title: Vue-CLI2 中的 Vue-Router 和 Vue-resource 实战 +date: 2018-07-09 20:04:01 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue-CLI2 中的 Vue-Router 和 Vue-Resource 实战 +**简单记录一下这两个插件的使用方法,写了一个demo,方便理解及应用。** +### (一)安装vue-cli2.x脚手架 +如果还没安装的,或安装过程不熟的,可以参考这篇文章教程,写的很详细——[Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)](https://www.jianshu.com/p/1626b8643676/),这个文章作者真的很用心,向他学习。 + +### (二)安装vue-router和vue-resource插件 +如果在安装脚手架的时候安装了vue-router,可以直接跳转到安装vue-resource。 +如果不是的,可以使用命令:`cd <项目文件夹>` 切换到项目文件夹路径下,然后使用命令行安装:`npm install vue-router --save` 和`npm install vue-resource --save` + +这里说明一下安装`npm install 插件 +[参数]`,表示的意思: +1.使用:`npm install 插件` :会把这个插件安装到node_modules目录中,但不会修改package.json内容; + +2.`npm install 插件 --save` :在项目发布上线之后还会依赖用到的插件,没有这个插件,项目不能正常的运行,自动更改package.json内容 ; + +3.`npm install 插件 --save-dev `:把插件安装到开发依赖中,项目上线之后不会用到的插件,针对个别插件,比如说这个“babel-loader”,是在项目编译解析完成后发布就没用到了的,自动更改package.json内容; + +### (三)使用vue-router+vue-resource写一个跳转请求页面数据的demo +1.先看一下安装脚手架的时候安装的路由界面及配置: + + +2.如果一开始没有的安装vue-router后自己手动安装的,可以参考这个main.js 和router文件夹的index.js配置的配置代码如下: +main.js代码: +``` +import Vue from 'vue' +import App from './App' +import router from './router'//引入路由指定文件 + +Vue.config.productionTip = false + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + router,//实例化,表示会使用 + render: h => h(App)//vue2.0写法 + + //以下是vue1.0的写法 + //components: { App },//注册组件信息 + // template: ''//简写的模板调用组件的标签 +}) + +``` +如果对代码中的`render: h => h(App)//vue2.0写法` 不理解的可以查看我之前写的文章——[vue-cli2.x中的render: h => h(App)解析](https://blog.csdn.net/qq_35324453/article/details/80961128) + +router文件夹的index.js代码: +``` +import Vue from 'vue' +import Router from 'vue-router'//引入路由配置的模块 +import HelloWorld from '@/components/HelloWorld'//引入需要路由转址的路径 +import Home from '@/components/Home'//引入需要路由转址的路径 +import VueResource from 'vue-resource'//引入vue-resource插件http请求 +//下面这种方法引用也可以 +// import HelloWorld from '../components/HelloWorld'//引入需要路由转址的路径 +// import Home from '../components/Home'//引入需要路由转址的路径 + +Vue.use(Router)//声明引用,全局使用 +Vue.use(VueResource)//声明引用,全局使用 + +export default new Router({ + + // 注意当有多个路由的时候默认使用第一个路由地址 + routes: [//注意routers是一个对象数组 + {//需要跳转的组件需要import引进 + path: '/',//路由的地址,此时表示根路径 + name: 'HelloWorld', + component: HelloWorld + }, + {//需要跳转的组件需要import引进 + //路由的地址,此时表示根路径。注意第二个路由地址这里需要添加上组件名 + path: '/Home', + name: 'Home', + component: Home + } + ], + mode:"history"//去掉url链接中的#符号 +}) + +``` +3.添加一个组件Home.vue,添加位置如下: + + +组件代码为: +``` + + + + + + + +``` + +4.需要在根组件App.vue下添加一下引入组件的内容: +``` + + + + + + +``` + +### (四)运行结果 + diff --git a/docs/posts/growth-record/frame/vue/vue-question-summary.md b/docs/posts/growth-record/frame/vue/vue-question-summary.md index 59f106f8..352efb2c 100644 --- a/docs/posts/growth-record/frame/vue/vue-question-summary.md +++ b/docs/posts/growth-record/frame/vue/vue-question-summary.md @@ -57,3 +57,37 @@ MDN 给出了以下答案 2. 错误的发现 => 解决的时间是否过长,如何更好的面对线上问题; 3. 权限的设计是否存在问题,目前的模式为没有权限 => 摧毁,采用有权限 => 生成是否会更加安全? 4. 前端自身的告警系统很有必要; + +## 编译报错问题:You are using the runtime-only build of Vue where the template compiler is not available +相信很多初学者使用vue-cli2.x初始化脚手架项目的时候或者webpack配置的时候会遇到这个问题: + + +一开始初始化项目配置的时候,有两个运行环境配置的版本:Compiler版本、Runtime版本。 + +简单说一下这两个版本的区别: + +1. 当对template模板内容编译是需要对字符串进行模板渲染或者可以绑定的html对象作为模板进行渲染的方式,就需要使用Compiler版本。示例如下: + ``` + new Vue({ + el:'#vue-app', + template:'

{{test}}

', + data:{ + test:'hello' + } + }); + ``` + +2. 如果使用vue-loader加载.vue文件时(组件文件),webpack在打包对模板进行了渲染,就需要Runtime版本。示例如下: + + ``` + new Vue({ + el: '#app', + components: { App }, + template: '' + }) + ``` + +从Compiler版本修改为Runtime版本。只需如示代码: + + +添加一行代码:`'vue$': 'vue/dist/vue.esm.js'` ,然后重新运行编译就可以了 diff --git a/docs/posts/growth-record/frame/vue/vue2-basics-knowledge.md b/docs/posts/growth-record/frame/vue/vue2-basics-knowledge.md new file mode 100644 index 00000000..c188e62f --- /dev/null +++ b/docs/posts/growth-record/frame/vue/vue2-basics-knowledge.md @@ -0,0 +1,88 @@ +--- +title: Vue2 基础知识点(一) +date: 2018-07-07 20:04:01 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue2 基础知识点(一) +**本文针对自己学习官方文档时,总结一些易容易混淆的知识点做一下记录。欢迎指正或学习交流。** + +### (一)常用基础知识点 + +1. `v-on:click=''`、`@click=''`、`:click=''` 三种写法; + 注意函数调用:直接使用双花括号调用函数是要使用函数名+括号,其他直接使用函数名即可,或使用函数名+括号(click 事件中)注意传参的函数必须带括号,可以不带参数,不然会报错对象空值; + +2. `v-if=''` 条件渲染与`v-show=''` 的区别:`v-if` 条件:不存在不会占位空间不会被渲染挂载;`v-show` 为真时,去掉 `display:none`,为假时显示`display:none`。默认会占用空间,会被渲染挂载。 + +3. `v-for=''` 可以通过两组方式遍历数组(也可以遍历对象):一种是通过数组下标;另一种是循环遍历; + `v-for='user in users' 或 v-for='(user,index) in users'` 第二个参数是数组索引值; + +```html +

v-for还可以渲染div

+
+

{{index+1}}

+ {{user.name}}---{{user.age}} +
+ +

v-for使用template标签,这个标签不像div一样会被渲染出来,只渲染template里面的标签

+ + +

遍历数组里面的对象,遍历两次

+ +``` + +4. 数据双向绑定的两种方法: + +```html +

双向数据绑定ref/$refs示例:input/select/textarea

+ + + +您输入的名字为:{{name}}
+ + +您输入的年龄为:{{age}} + +

双向数据绑定v-model示例:input/select/textarea

+ + + +您输入的名字为:{{name}}
+ + +您输入的年龄为:{{age}} + ``` + + js部分: +```javascript +new Vue({ + el:'#vue-app', + data:{ + name:'', + age:'' + }, + methods:{ + logName:function(){ + // console.log("您正在输入名字~"); + // $refs获取标记的值,后面接命名值+value + // console.log(this.$refs.refName.value); + this.name=this.$refs.refName.value; + }, + logAge:function(){ + // console.log("您正在输入年龄~"); + this.age=this.$refs.refAge.value; + } + } +}) +``` + +5. `computed` 和 `methods` 方法:只要methods方法之一被调用,其他所有方法都会被渲染执行,很耗费性能;计算属性,只会调用相应的方法体,是应用于搜索,调用比较多的方法体。 diff --git a/docs/posts/growth-record/frame/vue/vue2-component-props.md b/docs/posts/growth-record/frame/vue/vue2-component-props.md new file mode 100644 index 00000000..384af26a --- /dev/null +++ b/docs/posts/growth-record/frame/vue/vue2-component-props.md @@ -0,0 +1,91 @@ +--- +title: Vue2 父子组件动态传值 +date: 2018-06-26 20:02:02 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue2 父子组件动态传值 +**在学习 Vue2.x 的时候,遇到了一个问题,就是父子组件如何传递动态输入的值,文档介绍都是传递固定值的,比如我想传递一个刚输入的值呢,子组件如何显示?一下就是简单的代码:** + +注:本人使用的是官方的**脚手架**学习的,可以通过父级组件向子级组件传递动态输入的值。然后本人重写了一个测试页面,直接复制代码就可以运行的(看懂以下代码,父子组件传递原理也是一样的,此处以对象为例): + +```html + + + + + + + + 父组件向子组件动态传值示例 + + + + + + +
+
    +
  • + {{item}} +
  • +
+

添加一个列表项: + +

+

显示输入框传递给子组件的添加内容(对象):

+ + + + + + + + +
+ + + + + +``` + +测试结果如下: + + + diff --git a/docs/posts/growth-record/frame/vue/vue2-life-cycle.md b/docs/posts/growth-record/frame/vue/vue2-life-cycle.md new file mode 100644 index 00000000..909b7f67 --- /dev/null +++ b/docs/posts/growth-record/frame/vue/vue2-life-cycle.md @@ -0,0 +1,310 @@ +--- +title: Vue2 生命周期的理解与应用 +date: 2018-07-08 20:08:08 +tag: + - Vue +categories: + - 前端进击 +--- +# Vue2 生命周期的理解与应用 +**在学习 Vue2.x 入门后,开始慢慢熟悉 Vue 的模式和开发脚手架项目实践过程中,需要对生命周期钩子函数一定的理解,多少会用到这些钩子函数,根据自己的理解写了一下,欢迎指正或学习交流。** + +### (一)vue2.x生命周期图 + + +### (二)生命周期钩子函数说明 + +| 生命周期钩子函数 | 说明 | +|:--------------|:---------------| +|beforeCreate |在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用。| +|created |实例已经创建完成之后被调用。在这一步,实例已完成以下的配置:数据观测(data observer)属性初始化和方法的运算, watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。| +|beforeMount | 在挂载开始之前被调用:相关的 render 函数首次被调用。| +|mounted | `el`被新创建的 `vm.$el` 替换,并挂载到实例上去之后调用该钩子。如果 root实例挂载了一个文档内元素,当mounted被调用时 `vm.$el` 也在文档内。| +|beforeUpdate | 数据更新时调用,发生在虚拟 DOM 重新渲染和打补丁之前。你可以在这个钩子中进一步地更改状态,这不会触发附加的重渲染过程。| +|updated | 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。当这个钩子被调用时,组件 DOM 已经更新,所以你现在可以执行依赖于 DOM 的操作。| +|beforeDestroy | 实例销毁之前调用。在这一步,实例仍然完全可用。| +|destroyed |Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。| + +### (三)代码演示 +1. 通过嵌套组件的页面加载查看显示顺序: + 代码如下(可直接复制使用): + + ```html + + + + + + + + vue生命周期的理解应用 + + + + +
+

以下是调用组件信息

+
+ + + +
+
+ + + + + ``` + + 运行结果: + + +2. 通过控制台查看页面加载显示顺序日志: + 代码如下(可直接复制使用): + + ```html + + + + + + + + vue生命周期的理解应用 + + + + +
+

以下是调用组件信息

+
+

默认显示的数据:{{msg}}

+ +
+
+ + + + + ``` + + 简单说明一下结构: + (1)创建了一个 Vue 根实例命名为 vue-app,将其挂载到页面 id 为 vue-app 的 dom 元素上。 + (2)局部注册的一个组件 child 并在根实例中将其注册使其可以在根实例的作用域中使用。 + (3)将子组件用 `` 包裹,为接下来的测试作准备。 + (4)打开开发者工具的控制台查看结果: + + +#### 结果分析 +1.beforeCreate 执行时:data和el均未初始化,值为:undefined; + + +2.created 执行时:Vue 实例观察的数据对象 data 已经配置好,已经可以得到 `vue-app.msg` 的值,但 Vue 实例使用的根 DOM 元素 el 还未初始化; + + +3.beforeMount 执行时:data 和 el 均已经初始化,但从 `{{msg}}` 等页面展示数据可以看出此时 el 并没有渲染进数据,el 的值为“虚拟” DOM 的元素节点; + + +4.mounted 执行时:此时 el 已经渲染完成并挂载到实例上,页面基本显示完成; + + +5.beforeUpdate 执行时:会更新当前组件数据,但未在页面渲染出来; + + +6.updated 执行时:会更新当前组件数据,并在页面渲染出来; + + +7.beforeDestroy 和 destroyed 执行时:Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。注意:这里的销毁并不指代'抹去',而是表示'解绑'。 + + +验证一下,控制台输入:`app.msg='super456'` 页面 `{{msg}}` 并没有显示出来,结果显示: + + +### (四)一些钩子函数应用 +1. beforeCreate 钩子中可以进行 loading 之类的动画加载; +2. 在 created 钩子中可以对 data 数据进行操作,这个时候可以进行 ajax 请求将返回的数据赋给 data,还可以进行网络接口的请求操作; +3. 在 mounted 钩子对挂载的 dom 进行操作,也可以进行后台获取数据操作; + +### (五)文献参考 +*特别感谢:作者:hxgzj 的[关于Vue.js2.0生命周期的研究与理解](https://segmentfault.com/a/1190000010336178) 这篇文章分析的很详细,看完后参考写了一个案例出来的。内容中也引用了很多。* diff --git a/docs/posts/growth-record/other/toolGuide/markdown.md b/docs/posts/growth-record/other/toolGuide/markdown.md new file mode 100644 index 00000000..ccf864fb --- /dev/null +++ b/docs/posts/growth-record/other/toolGuide/markdown.md @@ -0,0 +1,245 @@ +--- +title: 常用的 Markdown 语法格式来编写文章 +date: 2018-06-23 20:02:01 +tag: + - 工具指南 +categories: + - 前端进击 +--- +# 常用的 Markdown 语法格式来编写文章 +**注:本教程需要一点对markdown语法格式的了解,什么都不知道的,请直接看[献给写作者的 Markdown 新手指南][02]的参考资料,再来看本文,会更好的去学习。** + +## 基本排版格式 + +### (一) 目录编辑 + +1. 导航目录链接制作,一般使用二级、三级标题格式(需要解析) + + 第一种方式获取标题: + + ```md + * TOC + {:toc} + ``` + +2. 小标题无序目录(注意空格) + + ```md + * 目录一 + * 目录二 + ``` + +3. 小标题有序目录(注意空格) + + ```md + 1. 目录一 + 2. 目录二 + ``` + +4. 锚点链接(注意英文字符) + + ```md + [目录](#目录) + [Fork 指南](#fork-指南) + ``` + +### (二) 链接表示 + +1. 基本插入链接表示: + * 网址链接:`[跳转名](https://xxx.github.io)` + * 本地图片链接(最好使用图床网站获取图片url): `![](/images/wiki/eclipse-need-java6.png)` + * 待定链接:`[这个链接跳转不了](#)` + +2. 统一的的链接跳转方式(为了排版好看一点): + + ```md + 参考:[mpv keybindings][0] + 参考:[OPTIONS][1] + 参考:[MPV使用小记][2] + + [0]: https://github.com/mpv-player/mpv/blob/master/etc/input.conf + [1]: https://github.com/mpv-player/mpv/blob/master/DOCS/man/options.rst + [2]: https://segmentfault.com/a/1190000004533079 + ``` + +3. 快捷插入网址链接表示形式:`` + +### (三) 表格排版 + +4. 表格排版参考(注意空行) + + ```md + | 功能 | 快捷键 for win | 快捷键 for mac | + |:---------|:---------------|:---------------| + | Project | M-1 | Cmd-1 | + | Terminal | M-F12 | M-F12 | + | Editor | Esc | Esc | + ``` + + **注意:**`:---------` 表示文字居左显示,`:---------:` 表示文字居中显示,`---------:` 表示文字居右显示。 + +### (四) 文字处理 + +1. 分割线 + * 第一种方式:`-----` + * 第二种方式:`***` + + 效果展示: + + *** + +2. 删除线:`~~删除线~~` ,效果展示:~~删除线~~ + +3. 斜体:`*斜体*` ,效果展示:*斜体* + +4. 表情插入(需要解析) + + ```md + :camel: + :blush: + :smile: + ``` + + [表情语法专属官网](https://www.webpagefx.com/tools/emoji-cheat-sheet/) + +5. 脚注提醒(需要解析) + + This is a text with footnote[^1]. + + [^1]: Here is the footnote 1 definition. + +6. 键盘键显示(需要解析): `Alt + Shift + S` + + 效果展示:Alt + Shift + S + +7. 电子邮箱输入:`<1111111111@qq.com>` ,效果展示:<1111111111@qq.com> + +8. 代办列表: 表示列表是否勾选状态 + + ```md + - [ ] 不勾选 + - [x] 勾选 + ``` + +9. 上下标(需要解析) + + `\^` 表示上标, `_` 表示下标。如果上下标的内容多于一个字符,要用{}把这些内容括起来当成一个整体。上下标是可以嵌套的,也可以同时使用。 例如: + + `x^{y^z}=(1+{\rm e}^x)^{-2xy^w}` ,效果展示:`x{yz}=(1+{\rm e}x){-2xy^w}`(解析有问题,需要装插件) + +10. 添加下划线: `php\_gd2.dll` ,效果展示: php\_gd2.dll + +11. 笔记本和标签(部分编辑器支持): `@(示例笔记本)[标签1|标签2|标签3]` 。 + +### (五) 引用 + +1. 区块引用可以嵌套,只要根据层次加上不同数量的 > : + + ```md + > 这是第一级引用。 + > + > > 这是第二级引用。 + > + > 现在回到第一级引用。 + ``` + +2. 引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等: + + ```md + > ## 这是一个标题。 + > + > 1. 这是第一行列表项。 + > 2. 这是第二行列表项。 + > + > 给出一些例子代码: + > + > return shell_exec("echo $input | $markdown_script"); + ``` + +3. 如果要在列表项目内放进引用,那 `>` 就需要缩进: + + ```md + * Coding.net有以下主要功能: + + > 代码托管平台 + > 在线运行环境 + > 代码质量监控 + > 项目管理平台 + ``` + +### (六) 简单的图形 + +1. 代码图形 + + ```md + +-------------+ +-------------+ + | | ... | | + +-------------+ +-------------+ + | | | | + +-------------+ +-------------+ + | format str1 | <-- esp | format str2 | <-- esp + +-------------+ +-------------+ + | double low | | int | + +-------------+ +-------------+ + | double high | | double high | + +-------------+ main stack frame +-------------+ + | ... | | ... | + +-------------+ +-------------+ + | | | | + +-------------+ +-------------+ + | (%ebp) | <-- ebp | (%ebp) | <-- ebp + +-------------+ +-------------+ + ``` + +2. 构建文件夹图形 + + ```md + app/src/main + ├─assets + ├─java + │ ├─android + │ │ └─content + │ │ └─pm + │ └─org + │ └─mazhuang + │ └─easycleaner + └─res + ├─drawable + ├─layout + ├─menu + ... + ``` + +### (七) 代码语法 + +1. 单行代码语法:两个 \`,中间输入内容 + +2. 多行代码语法(注意前后空行):第一行输入三个 \` 然后最后一行再输入三个 + +3. 简单的语法高亮 + + ```sh + git checkout -b test 5234ab + ``` + + ```python + print 'Hello, World!' + ``` + +4. 代码高亮语言标识符支持的语法 + + 支持的有 `javascript(js)、cpp、makefile、vbnet、xml、c、java、cl、vim、sh、yaml、markdown(显示原语法格式)、html、vb、python` 等等 + +## 参考文献 + +- (1)、[中文文案排版指北(简体中文版)][01] +- (2)、[献给写作者的 Markdown 新手指南][02] +- (3)、[Markdown语法介绍][03] +- (4)、[Markdown 语法说明 (简体中文版)][04] +- (5)、[马克飞象-在线编辑器][05] + +[01]: http://mazhuang.org/wiki/chinese-copywriting-guidelines/ +[02]: http://www.jianshu.com/p/q81RER +[03]: https://coding.net/help/doc/project/markdown.html#section-2 +[04]: http://www.appinn.com/markdown/ +[05]: https://maxiang.io/ diff --git a/docs/public/growth-record/frame/vue/game.gif b/docs/public/growth-record/frame/vue/game.gif new file mode 100644 index 00000000..c46726c3 Binary files /dev/null and b/docs/public/growth-record/frame/vue/game.gif differ diff --git a/docs/public/growth-record/frame/vue/props-01.png b/docs/public/growth-record/frame/vue/props-01.png new file mode 100644 index 00000000..568007b9 Binary files /dev/null and b/docs/public/growth-record/frame/vue/props-01.png differ diff --git a/docs/public/growth-record/frame/vue/props-02.png b/docs/public/growth-record/frame/vue/props-02.png new file mode 100644 index 00000000..9de5c19d Binary files /dev/null and b/docs/public/growth-record/frame/vue/props-02.png differ diff --git a/docs/public/growth-record/frame/vue/render-app.png b/docs/public/growth-record/frame/vue/render-app.png new file mode 100644 index 00000000..e7c57ade Binary files /dev/null and b/docs/public/growth-record/frame/vue/render-app.png differ diff --git a/docs/public/growth-record/frame/vue/router-01.png b/docs/public/growth-record/frame/vue/router-01.png new file mode 100644 index 00000000..013e5a1a Binary files /dev/null and b/docs/public/growth-record/frame/vue/router-01.png differ diff --git a/docs/public/growth-record/frame/vue/router-02.png b/docs/public/growth-record/frame/vue/router-02.png new file mode 100644 index 00000000..a299b6ee Binary files /dev/null and b/docs/public/growth-record/frame/vue/router-02.png differ diff --git a/docs/public/growth-record/frame/vue/router-03.gif b/docs/public/growth-record/frame/vue/router-03.gif new file mode 100644 index 00000000..c767bacc Binary files /dev/null and b/docs/public/growth-record/frame/vue/router-03.gif differ diff --git a/docs/public/growth-record/frame/vue/vue-question-06.png b/docs/public/growth-record/frame/vue/vue-question-06.png new file mode 100644 index 00000000..dbf1c24d Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue-question-06.png differ diff --git a/docs/public/growth-record/frame/vue/vue-question-07.png b/docs/public/growth-record/frame/vue/vue-question-07.png new file mode 100644 index 00000000..e83db71d Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue-question-07.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-01.png b/docs/public/growth-record/frame/vue/vue2-life-01.png new file mode 100644 index 00000000..c37e7278 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-01.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-02.gif b/docs/public/growth-record/frame/vue/vue2-life-02.gif new file mode 100644 index 00000000..5423b9ba Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-02.gif differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-03.png b/docs/public/growth-record/frame/vue/vue2-life-03.png new file mode 100644 index 00000000..2909cd1b Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-03.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-04.png b/docs/public/growth-record/frame/vue/vue2-life-04.png new file mode 100644 index 00000000..68df3925 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-04.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-05.png b/docs/public/growth-record/frame/vue/vue2-life-05.png new file mode 100644 index 00000000..a178d085 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-05.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-06.png b/docs/public/growth-record/frame/vue/vue2-life-06.png new file mode 100644 index 00000000..2b3d6fd3 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-06.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-07.png b/docs/public/growth-record/frame/vue/vue2-life-07.png new file mode 100644 index 00000000..bba33840 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-07.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-08.png b/docs/public/growth-record/frame/vue/vue2-life-08.png new file mode 100644 index 00000000..3b94a61b Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-08.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-09.png b/docs/public/growth-record/frame/vue/vue2-life-09.png new file mode 100644 index 00000000..aa792859 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-09.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-10.png b/docs/public/growth-record/frame/vue/vue2-life-10.png new file mode 100644 index 00000000..236f3456 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-10.png differ diff --git a/docs/public/growth-record/frame/vue/vue2-life-11.png b/docs/public/growth-record/frame/vue/vue2-life-11.png new file mode 100644 index 00000000..1113aa29 Binary files /dev/null and b/docs/public/growth-record/frame/vue/vue2-life-11.png differ