├── .gitignore ├── 01_src_分析脚手架 ├── App.vue ├── assets │ └── logo.png ├── components │ ├── School.vue │ └── Student.vue └── main.js ├── 02_src_ref元素 ├── App.vue ├── components │ └── School.vue └── main.js ├── 03_src_props配置 ├── App.vue ├── components │ └── Student.vue └── main.js ├── 04_src_mixin混入(合) ├── App.vue ├── components │ ├── School.vue │ └── Student.vue ├── main.js └── mixin.js ├── 05_src_插件 ├── App.vue ├── components │ ├── School.vue │ └── Student.vue ├── main.js └── plugins.js ├── 06_src_scoped样式 ├── App.vue ├── components │ ├── School.vue │ └── Student.vue └── main.js ├── 07_src_TodoList案例 ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue ├── main.js ├── todoList.css └── todoList.html ├── 07_src_TodoList案例_test ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue ├── main.js ├── todoList.css └── todoList.html ├── 08_浏览器本地存储 ├── localStorage.html └── sessionStorage.html ├── 09_src_TodoList本地存储 ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 10_src_组件自定义事件 ├── App.vue ├── components │ ├── School.vue │ └── Student.vue └── main.js ├── 11_src_TodoList_自定义事件 ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 12_src_全局事件总线 ├── App.vue ├── components │ ├── School.vue │ └── Student.vue └── main.js ├── 13_src_TodoList_事件总线 ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 14_src_消息订阅与发布 ├── App.vue ├── components │ ├── School.vue │ └── Student.vue └── main.js ├── 15_src_TodoList_pubsub ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 16_src_TodoList_nextTick ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 17_src_过渡与动画 ├── App.vue ├── components │ ├── Test.vue │ ├── Test2.vue │ └── Test3.vue ├── image-20211120101929608.png └── main.js ├── 18_src_TodoList_动画 ├── App.vue ├── components │ ├── MyFooter.vue │ ├── MyHeader.vue │ ├── MyItem.vue │ └── MyList.vue └── main.js ├── 19_src_配置代理服务器 ├── App.vue └── main.js ├── 20_src_github搜索案例 ├── App.vue ├── assets │ ├── css │ │ └── bootstrap.css │ └── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 ├── components │ ├── List.vue │ └── Search.vue ├── index.css ├── index.html └── main.js ├── 21_src_github搜索案例_vue-resource ├── App.vue ├── assets │ ├── css │ │ └── bootstrap.css │ └── fonts │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 ├── components │ ├── List.vue │ └── Search.vue ├── index.css ├── index.html └── main.js ├── 22_插槽 ├── 1_src_默认插槽 │ ├── App.vue │ ├── components │ │ └── Category.vue │ └── main.js ├── 2_src_具名插槽 │ ├── App.vue │ ├── components │ │ └── Category.vue │ └── main.js └── 3_src_作用域插槽 │ ├── App.vue │ ├── components │ └── Category.vue │ └── main.js ├── 23_src_纯vue版 ├── App.vue ├── components │ └── Count.vue └── main.js ├── 24_src_vuex版 ├── App.vue ├── components │ └── Count.vue ├── main.js └── store │ └── index.js ├── 25_src_求和案例_getters ├── App.vue ├── components │ └── Count.vue ├── main.js └── store │ └── index.js ├── 26_src_求和案例_mapState与mapGetters ├── App.vue ├── components │ └── Count.vue ├── main.js └── store │ └── index.js ├── 27_src_求和案例_mapMutations与mapActions ├── App.vue ├── components │ └── Count.vue ├── main.js └── store │ └── index.js ├── 28_src_求和案例_多组件共享数据 ├── App.vue ├── components │ ├── Count.vue │ └── Person.vue ├── main.js └── store │ └── index.js ├── 29_src_求和案例_vuex模块化编码 ├── App.vue ├── components │ ├── Count.vue │ └── Person.vue ├── main.js └── store │ ├── count.js │ ├── index.js │ └── person.js ├── 30_src_路由的基本使用 ├── App.vue ├── about.html ├── components │ ├── About.vue │ └── Home.vue ├── home.html ├── main.js └── router │ └── index.js ├── 31_src_多级路由 ├── App.vue ├── about.html ├── components │ └── Banner.vue ├── home-message.html ├── home-news.html ├── home.html ├── main.js ├── pages │ ├── About.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 32_src_路由的query参数 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 33_src_命名路由 ├── App.vue ├── about.html ├── components │ └── Banner.vue ├── home-message.html ├── home-news.html ├── home.html ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 34_src_路由的params参数 ├── App.vue ├── about.html ├── components │ └── Banner.vue ├── home-message.html ├── home-news.html ├── home.html ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 35_src_路由的props配置 ├── App.vue ├── components │ └── Banner.vue ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 36_src_router-link的replace属性 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 37_src_编程式路由导航 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 38_src_缓存路由组件 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 39_src_两个新的生命周期钩子 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 40_src_全局路由守卫 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 41_src_独享路由守卫 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 42_src_组件内路由守卫 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 43_src_history模式与hash模式 ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js ├── 44_src_element-ui ├── App.vue └── main.js ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public ├── css │ └── bootstrap.css ├── favicon.ico ├── image │ ├── vuex.png │ ├── 全局事件总线.png │ └── 消息订阅与发布.png └── index.html ├── src ├── App.vue ├── components │ └── Banner.vue ├── main.js ├── pages │ ├── About.vue │ ├── Detail.vue │ ├── Home.vue │ ├── Message.vue │ └── News.vue └── router │ └── index.js └── vue.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | pnpm-debug.log* 14 | 15 | # Editor directories and files 16 | .idea 17 | .vscode 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw? 23 | -------------------------------------------------------------------------------- /01_src_分析脚手架/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /01_src_分析脚手架/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/01_src_分析脚手架/assets/logo.png -------------------------------------------------------------------------------- /01_src_分析脚手架/components/School.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 25 | 26 | -------------------------------------------------------------------------------- /01_src_分析脚手架/components/Student.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /01_src_分析脚手架/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | 该文件时整个项目的入口文件 3 | */ 4 | // 引入Vue 5 | import Vue from 'vue' 6 | // 引入App组件,它是所有组件的父组件 7 | import App from './App.vue' 8 | // 关闭Vue的生产提示 9 | Vue.config.productionTip = false 10 | 11 | // 创建Vue实例对象vm 12 | new Vue({ 13 | // 功能:将App组件放入容器中 14 | render: h => h(App), 15 | }).$mount('#app') 16 | -------------------------------------------------------------------------------- /02_src_ref元素/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 32 | 33 | -------------------------------------------------------------------------------- /02_src_ref元素/components/School.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /02_src_ref元素/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //关闭vue的生产提示 6 | Vue.config.productionTip = false 7 | 8 | //创建vm 9 | new Vue({ 10 | el:'#app', 11 | render: h => h(App) 12 | }) -------------------------------------------------------------------------------- /03_src_props配置/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /03_src_props配置/components/Student.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /03_src_props配置/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //关闭vue的生产提示 6 | Vue.config.productionTip = false 7 | 8 | //创建vm 9 | new Vue({ 10 | el:'#app', 11 | render: h => h(App) 12 | }) -------------------------------------------------------------------------------- /04_src_mixin混入(合)/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /04_src_mixin混入(合)/components/School.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /04_src_mixin混入(合)/components/Student.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /04_src_mixin混入(合)/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | import {mixin} from './mixin' 6 | 7 | //关闭vue的生产提示 8 | Vue.config.productionTip = false 9 | Vue.mixin(mixin) 10 | 11 | //创建vm 12 | new Vue({ 13 | el:'#app', 14 | render: h => h(App) 15 | }) -------------------------------------------------------------------------------- /04_src_mixin混入(合)/mixin.js: -------------------------------------------------------------------------------- 1 | export const mixin = { 2 | methods: { 3 | showName(){ 4 | alert(this.name) 5 | } 6 | } 7 | } 8 | 9 | export const mixin2 = { 10 | mounted(){ 11 | console.log("加载完毕...") 12 | } 13 | } -------------------------------------------------------------------------------- /05_src_插件/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /05_src_插件/components/School.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /05_src_插件/components/Student.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /05_src_插件/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //引入插件 7 | import plugins from './plugins' 8 | 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | 12 | //应用(使用)插件 13 | Vue.use(plugins) 14 | 15 | //创建vm 16 | new Vue({ 17 | el:'#app', 18 | render: h => h(App) 19 | }) -------------------------------------------------------------------------------- /05_src_插件/plugins.js: -------------------------------------------------------------------------------- 1 | export default { 2 | install(Vue){ 3 | //全局过滤器 4 | Vue.filter('myFilter',function(value){ 5 | return value.slice(0,4) 6 | }) 7 | 8 | //定义全局指令 9 | Vue.directive('fbind',{ 10 | //指令与元素成功绑定时(一上来) 11 | bind(element,binding){ 12 | element.value = binding.value 13 | }, 14 | //指令所在元素被插入页面时 15 | inserted(element){ 16 | element.focus() 17 | }, 18 | //指令所在的模板被重新解析时 19 | update(element,binding) { 20 | element.value = binding.value 21 | } 22 | }) 23 | 24 | //定义混入 25 | Vue.mixin({ 26 | data(){ 27 | return { 28 | x: 100, 29 | y: 200 30 | } 31 | }, 32 | methods:{ 33 | add(){ 34 | this.age++ 35 | } 36 | } 37 | }) 38 | 39 | //给原型上添加一个方法 40 | Vue.prototype.hello = ()=>{ 41 | alert('你好啊') 42 | } 43 | } 44 | } 45 | 46 | -------------------------------------------------------------------------------- /06_src_scoped样式/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /06_src_scoped样式/components/School.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /06_src_scoped样式/components/Student.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 19 | 20 | -------------------------------------------------------------------------------- /06_src_scoped样式/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App) 13 | }) -------------------------------------------------------------------------------- /07_src_TodoList案例/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 36 | 37 | -------------------------------------------------------------------------------- /07_src_TodoList案例/components/MyItem.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 33 | 34 | -------------------------------------------------------------------------------- /07_src_TodoList案例/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 24 | 25 | -------------------------------------------------------------------------------- /07_src_TodoList案例/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App) 13 | }) -------------------------------------------------------------------------------- /07_src_TodoList案例/todoList.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Recat App 6 | 7 | 8 | 9 |
10 |
11 |
12 |
13 | 14 |
15 |
    16 |
  • 17 | 21 | 22 |
  • 23 |
  • 24 | 28 | 29 |
  • 30 |
31 | 40 |
41 |
42 |
43 | 44 | -------------------------------------------------------------------------------- /07_src_TodoList案例_test/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 35 | 36 | -------------------------------------------------------------------------------- /07_src_TodoList案例_test/components/MyItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 25 | 26 | -------------------------------------------------------------------------------- /07_src_TodoList案例_test/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 24 | 25 | -------------------------------------------------------------------------------- /07_src_TodoList案例_test/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App) 13 | }) -------------------------------------------------------------------------------- /07_src_TodoList案例_test/todoList.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Recat App 6 | 7 | 8 | 9 |
10 |
11 |
12 |
13 | 14 |
15 |
    16 |
  • 17 | 21 | 22 |
  • 23 |
  • 24 | 28 | 29 |
  • 30 |
31 | 40 |
41 |
42 |
43 | 44 | -------------------------------------------------------------------------------- /08_浏览器本地存储/localStorage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | localStorage 6 | 7 | 8 |

localStorage

9 | 10 | 11 | 12 | 13 | 14 | 44 | 45 | -------------------------------------------------------------------------------- /08_浏览器本地存储/sessionStorage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | sessionStorage 6 | 7 | 8 |

sessionStorage

9 | 10 | 11 | 12 | 13 | 14 | 43 | 44 | -------------------------------------------------------------------------------- /09_src_TodoList本地存储/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 35 | 36 | -------------------------------------------------------------------------------- /09_src_TodoList本地存储/components/MyItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 25 | 26 | -------------------------------------------------------------------------------- /09_src_TodoList本地存储/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 24 | 25 | -------------------------------------------------------------------------------- /09_src_TodoList本地存储/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App) 13 | }) -------------------------------------------------------------------------------- /10_src_组件自定义事件/App.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 58 | 59 | -------------------------------------------------------------------------------- /10_src_组件自定义事件/components/School.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | -------------------------------------------------------------------------------- /10_src_组件自定义事件/components/Student.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 46 | 47 | -------------------------------------------------------------------------------- /10_src_组件自定义事件/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | // mounted(){ 14 | // setTimeout(()=>{ 15 | // this.$destroy() 16 | // },3000) 17 | // } 18 | }) -------------------------------------------------------------------------------- /11_src_TodoList_自定义事件/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | 38 | -------------------------------------------------------------------------------- /11_src_TodoList_自定义事件/components/MyItem.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 33 | 34 | -------------------------------------------------------------------------------- /11_src_TodoList_自定义事件/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 24 | 25 | -------------------------------------------------------------------------------- /11_src_TodoList_自定义事件/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App) 13 | }) -------------------------------------------------------------------------------- /12_src_全局事件总线/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | -------------------------------------------------------------------------------- /12_src_全局事件总线/components/School.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 25 | 26 | -------------------------------------------------------------------------------- /12_src_全局事件总线/components/Student.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | -------------------------------------------------------------------------------- /12_src_全局事件总线/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | //安装全局事件总线 15 | Vue.prototype.$bus = this 16 | }, 17 | }) -------------------------------------------------------------------------------- /13_src_TodoList_事件总线/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | 38 | -------------------------------------------------------------------------------- /13_src_TodoList_事件总线/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | 24 | -------------------------------------------------------------------------------- /13_src_TodoList_事件总线/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | Vue.prototype.$bus = this 15 | }, 16 | }) -------------------------------------------------------------------------------- /14_src_消息订阅与发布/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | 27 | -------------------------------------------------------------------------------- /14_src_消息订阅与发布/components/School.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 35 | 36 | -------------------------------------------------------------------------------- /14_src_消息订阅与发布/components/Student.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 28 | 29 | -------------------------------------------------------------------------------- /14_src_消息订阅与发布/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | // beforeCreate() { 14 | // //安装全局事件总线 15 | // Vue.prototype.$bus = this 16 | // }, 17 | }) -------------------------------------------------------------------------------- /15_src_TodoList_pubsub/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | 38 | -------------------------------------------------------------------------------- /15_src_TodoList_pubsub/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | 24 | -------------------------------------------------------------------------------- /15_src_TodoList_pubsub/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | Vue.prototype.$bus = this 15 | }, 16 | }) -------------------------------------------------------------------------------- /16_src_TodoList_nextTick/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | 38 | -------------------------------------------------------------------------------- /16_src_TodoList_nextTick/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 23 | 24 | -------------------------------------------------------------------------------- /16_src_TodoList_nextTick/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | Vue.prototype.$bus = this 15 | }, 16 | }) -------------------------------------------------------------------------------- /17_src_过渡与动画/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /17_src_过渡与动画/components/Test.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 20 | 21 | -------------------------------------------------------------------------------- /17_src_过渡与动画/components/Test2.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 21 | 22 | -------------------------------------------------------------------------------- /17_src_过渡与动画/components/Test3.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 28 | 29 | -------------------------------------------------------------------------------- /17_src_过渡与动画/image-20211120101929608.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/17_src_过渡与动画/image-20211120101929608.png -------------------------------------------------------------------------------- /17_src_过渡与动画/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | Vue.prototype.$bus = this 15 | }, 16 | }) -------------------------------------------------------------------------------- /18_src_TodoList_动画/components/MyHeader.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 37 | 38 | -------------------------------------------------------------------------------- /18_src_TodoList_动画/components/MyList.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 25 | 26 | -------------------------------------------------------------------------------- /18_src_TodoList_动画/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate() { 14 | Vue.prototype.$bus = this 15 | }, 16 | }) -------------------------------------------------------------------------------- /19_src_配置代理服务器/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /19_src_配置代理服务器/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | }) -------------------------------------------------------------------------------- /20_src_github搜索案例/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/20_src_github搜索案例/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /20_src_github搜索案例/components/List.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 35 | 36 | -------------------------------------------------------------------------------- /20_src_github搜索案例/components/Search.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 39 | 40 | -------------------------------------------------------------------------------- /20_src_github搜索案例/index.css: -------------------------------------------------------------------------------- 1 | .album { 2 | min-height: 50rem; 3 | padding-top: 3rem; 4 | padding-bottom: 3rem; 5 | background-color: #f7f7f7; 6 | } 7 | 8 | .card { 9 | float: left; 10 | width: 33.333%; 11 | padding: .75rem; 12 | margin-bottom: 2rem; 13 | border: 1px solid #efefef; 14 | text-align: center; 15 | } 16 | 17 | .card > img { 18 | margin-bottom: .75rem; 19 | border-radius: 100px; 20 | } 21 | 22 | .card-text { 23 | font-size: 85%; 24 | } -------------------------------------------------------------------------------- /20_src_github搜索案例/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate(){ 14 | Vue.prototype.$bus = this 15 | } 16 | }) -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/21_src_github搜索案例_vue-resource/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/components/List.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 35 | 36 | -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/components/Search.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 37 | 38 | -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/index.css: -------------------------------------------------------------------------------- 1 | .album { 2 | min-height: 50rem; 3 | padding-top: 3rem; 4 | padding-bottom: 3rem; 5 | background-color: #f7f7f7; 6 | } 7 | 8 | .card { 9 | float: left; 10 | width: 33.333%; 11 | padding: .75rem; 12 | margin-bottom: 2rem; 13 | border: 1px solid #efefef; 14 | text-align: center; 15 | } 16 | 17 | .card > img { 18 | margin-bottom: .75rem; 19 | border-radius: 100px; 20 | } 21 | 22 | .card-text { 23 | font-size: 85%; 24 | } -------------------------------------------------------------------------------- /21_src_github搜索案例_vue-resource/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //引入插件 7 | import vueResoure from 'vue-resource' 8 | 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | 12 | //使用插件 13 | Vue.use(vueResoure) 14 | 15 | //创建vm 16 | new Vue({ 17 | el:'#app', 18 | render: h => h(App), 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /22_插槽/1_src_默认插槽/App.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 34 | 35 | -------------------------------------------------------------------------------- /22_插槽/1_src_默认插槽/components/Category.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 18 | 19 | -------------------------------------------------------------------------------- /22_插槽/1_src_默认插槽/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate(){ 14 | Vue.prototype.$bus = this 15 | } 16 | }) -------------------------------------------------------------------------------- /22_插槽/2_src_具名插槽/App.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 49 | 50 | -------------------------------------------------------------------------------- /22_插槽/2_src_具名插槽/components/Category.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 19 | 20 | -------------------------------------------------------------------------------- /22_插槽/2_src_具名插槽/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate(){ 14 | Vue.prototype.$bus = this 15 | } 16 | }) -------------------------------------------------------------------------------- /22_插槽/3_src_作用域插槽/App.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | 38 | 39 | -------------------------------------------------------------------------------- /22_插槽/3_src_作用域插槽/components/Category.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 23 | 24 | -------------------------------------------------------------------------------- /22_插槽/3_src_作用域插槽/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | 6 | //关闭vue的生产提示 7 | Vue.config.productionTip = false 8 | 9 | //创建vm 10 | new Vue({ 11 | el:'#app', 12 | render: h => h(App), 13 | beforeCreate(){ 14 | Vue.prototype.$bus = this 15 | } 16 | }) -------------------------------------------------------------------------------- /23_src_纯vue版/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /23_src_纯vue版/components/Count.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 45 | 46 | -------------------------------------------------------------------------------- /23_src_纯vue版/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //关闭vue的生产提示 8 | Vue.config.productionTip = false 9 | //使用插件 10 | Vue.use(vueResource) 11 | 12 | //创建vm 13 | new Vue({ 14 | el:'#app', 15 | render: h => h(App), 16 | beforeCreate(){ 17 | Vue.prototype.$bus = this 18 | } 19 | }) -------------------------------------------------------------------------------- /24_src_vuex版/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /24_src_vuex版/components/Count.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 40 | 41 | -------------------------------------------------------------------------------- /24_src_vuex版/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /24_src_vuex版/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | //使用插件 8 | Vue.use(Vuex) 9 | //准备actions——用于响应组件中的动作 10 | const actions = { 11 | // jia(context,value){ 12 | // console.log('jia被调用了') 13 | // context.commit('JIA',value) 14 | // }, 15 | // jian(context,value){ 16 | // console.log('jian被调用了') 17 | // context.commit('JIAN',value) 18 | // }, 19 | jiaOdd(context,value){ 20 | console.log('jiaOdd被调用了') 21 | if(context.state.sum % 2){ 22 | context.commit('JIA',value) 23 | } 24 | }, 25 | jiaWait(context,value){ 26 | console.log("jiaWait被调用了") 27 | setTimeout(()=>{ 28 | context.commit('JIA',value) 29 | },500) 30 | } 31 | } 32 | //准备mutations——用于操作数据(state) 33 | const mutations = { 34 | JIA(state,value){ 35 | console.log('JIA被调用了') 36 | state.sum += value 37 | }, 38 | JIAN(store,value){ 39 | console.log('JIAN被调用了') 40 | store.sum -= value 41 | } 42 | } 43 | //准备state——用于存储数据 44 | const state = { 45 | sum:0 //和 46 | } 47 | //创建并暴露store 48 | export default new Vuex.Store({ 49 | actions, 50 | mutations, 51 | state 52 | }) -------------------------------------------------------------------------------- /25_src_求和案例_getters/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /25_src_求和案例_getters/components/Count.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 46 | 47 | -------------------------------------------------------------------------------- /25_src_求和案例_getters/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /25_src_求和案例_getters/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | //使用插件 8 | Vue.use(Vuex) 9 | //准备actions——用于响应组件中的动作 10 | const actions = { 11 | // jia(context,value){ 12 | // console.log('jia被调用了') 13 | // context.commit('JIA',value) 14 | // }, 15 | // jian(context,value){ 16 | // console.log('jian被调用了') 17 | // context.commit('JIAN',value) 18 | // }, 19 | jiaOdd(context,value){ 20 | console.log('jiaOdd被调用了') 21 | if(context.state.sum % 2){ 22 | context.commit('JIA',value) 23 | } 24 | }, 25 | jiaWait(context,value){ 26 | console.log("jiaWait被调用了") 27 | setTimeout(()=>{ 28 | context.commit('JIA',value) 29 | },500) 30 | } 31 | } 32 | //准备mutations——用于操作数据(state) 33 | const mutations = { 34 | JIA(state,value){ 35 | console.log('JIA被调用了') 36 | state.sum += value 37 | }, 38 | JIAN(store,value){ 39 | console.log('JIAN被调用了') 40 | store.sum -= value 41 | } 42 | } 43 | //准备state——用于存储数据 44 | const state = { 45 | sum:0 //和 46 | } 47 | //准备getters——用于将state中的数据进行加工 48 | const getters = { 49 | bigSum(state){ 50 | return state.sum * 10 51 | } 52 | } 53 | 54 | //创建并暴露store 55 | export default new Vuex.Store({ 56 | actions, 57 | mutations, 58 | state, 59 | getters 60 | }) -------------------------------------------------------------------------------- /26_src_求和案例_mapState与mapGetters/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /26_src_求和案例_mapState与mapGetters/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /26_src_求和案例_mapState与mapGetters/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | //使用插件 8 | Vue.use(Vuex) 9 | //准备actions——用于响应组件中的动作 10 | const actions = { 11 | // jia(context,value){ 12 | // console.log('jia被调用了') 13 | // context.commit('JIA',value) 14 | // }, 15 | // jian(context,value){ 16 | // console.log('jian被调用了') 17 | // context.commit('JIAN',value) 18 | // }, 19 | jiaOdd(context,value){ 20 | console.log('jiaOdd被调用了') 21 | if(context.state.sum % 2){ 22 | context.commit('JIA',value) 23 | } 24 | }, 25 | jiaWait(context,value){ 26 | console.log("jiaWait被调用了") 27 | setTimeout(()=>{ 28 | context.commit('JIA',value) 29 | },500) 30 | } 31 | } 32 | //准备mutations——用于操作数据(state) 33 | const mutations = { 34 | JIA(state,value){ 35 | console.log('JIA被调用了') 36 | state.sum += value 37 | }, 38 | JIAN(store,value){ 39 | console.log('JIAN被调用了') 40 | store.sum -= value 41 | } 42 | } 43 | //准备state——用于存储数据 44 | const state = { 45 | sum:0, //和 46 | school: '尚硅谷', 47 | subject: '前端' 48 | } 49 | //准备getters——用于将state中的数据进行加工 50 | const getters = { 51 | bigSum(state){ 52 | return state.sum * 10 53 | } 54 | } 55 | 56 | //创建并暴露store 57 | export default new Vuex.Store({ 58 | actions, 59 | mutations, 60 | state, 61 | getters 62 | }) -------------------------------------------------------------------------------- /27_src_求和案例_mapMutations与mapActions/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /27_src_求和案例_mapMutations与mapActions/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /27_src_求和案例_mapMutations与mapActions/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | //使用插件 8 | Vue.use(Vuex) 9 | //准备actions——用于响应组件中的动作 10 | const actions = { 11 | // jia(context,value){ 12 | // console.log('jia被调用了') 13 | // context.commit('JIA',value) 14 | // }, 15 | // jian(context,value){ 16 | // console.log('jian被调用了') 17 | // context.commit('JIAN',value) 18 | // }, 19 | jiaOdd(context,value){ 20 | console.log('jiaOdd被调用了') 21 | if(context.state.sum % 2){ 22 | context.commit('JIA',value) 23 | } 24 | }, 25 | jiaWait(context,value){ 26 | console.log("jiaWait被调用了") 27 | setTimeout(()=>{ 28 | context.commit('JIA',value) 29 | },500) 30 | } 31 | } 32 | //准备mutations——用于操作数据(state) 33 | const mutations = { 34 | JIA(state,value){ 35 | console.log('JIA被调用了') 36 | state.sum += value 37 | }, 38 | JIAN(store,value){ 39 | console.log('JIAN被调用了') 40 | store.sum -= value 41 | } 42 | } 43 | //准备state——用于存储数据 44 | const state = { 45 | sum:0, //和 46 | school: '尚硅谷', 47 | subject: '前端' 48 | } 49 | //准备getters——用于将state中的数据进行加工 50 | const getters = { 51 | bigSum(state){ 52 | return state.sum * 10 53 | } 54 | } 55 | 56 | //创建并暴露store 57 | export default new Vuex.Store({ 58 | actions, 59 | mutations, 60 | state, 61 | getters 62 | }) -------------------------------------------------------------------------------- /28_src_求和案例_多组件共享数据/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /28_src_求和案例_多组件共享数据/components/Count.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 44 | 45 | -------------------------------------------------------------------------------- /28_src_求和案例_多组件共享数据/components/Person.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 42 | 43 | -------------------------------------------------------------------------------- /28_src_求和案例_多组件共享数据/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /28_src_求和案例_多组件共享数据/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | //使用插件 8 | Vue.use(Vuex) 9 | //准备actions——用于响应组件中的动作 10 | const actions = { 11 | // jia(context,value){ 12 | // console.log('jia被调用了') 13 | // context.commit('JIA',value) 14 | // }, 15 | // jian(context,value){ 16 | // console.log('jian被调用了') 17 | // context.commit('JIAN',value) 18 | // }, 19 | jiaOdd(context,value){ 20 | console.log('jiaOdd被调用了') 21 | if(context.state.sum % 2){ 22 | context.commit('JIA',value) 23 | } 24 | }, 25 | jiaWait(context,value){ 26 | console.log("jiaWait被调用了") 27 | setTimeout(()=>{ 28 | context.commit('JIA',value) 29 | },500) 30 | } 31 | } 32 | //准备mutations——用于操作数据(state) 33 | const mutations = { 34 | JIA(state,value){ 35 | console.log('JIA被调用了') 36 | state.sum += value 37 | }, 38 | JIAN(store,value){ 39 | console.log('JIAN被调用了') 40 | store.sum -= value 41 | }, 42 | ADD_PERSON(store,value){ 43 | console.log('ADD_PERSON被调用了') 44 | store.personList.unshift(value) 45 | } 46 | } 47 | //准备state——用于存储数据 48 | const state = { 49 | sum:0, //和 50 | school: '尚硅谷', 51 | subject: '前端', 52 | personList: [ 53 | {id:'001',name:'张三'} 54 | ] 55 | } 56 | //准备getters——用于将state中的数据进行加工 57 | const getters = { 58 | bigSum(state){ 59 | return state.sum * 10 60 | } 61 | } 62 | 63 | //创建并暴露store 64 | export default new Vuex.Store({ 65 | actions, 66 | mutations, 67 | state, 68 | getters 69 | }) -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/components/Count.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 45 | 46 | -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/components/Person.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 56 | 57 | -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vueResource 6 | import vueResource from 'vue-resource' 7 | //引入store 8 | import store from './store' 9 | //关闭vue的生产提示 10 | Vue.config.productionTip = false 11 | //使用插件 12 | Vue.use(vueResource) 13 | 14 | //创建vm 15 | new Vue({ 16 | el:'#app', 17 | render: h => h(App), 18 | store, 19 | beforeCreate(){ 20 | Vue.prototype.$bus = this 21 | } 22 | }) -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/store/count.js: -------------------------------------------------------------------------------- 1 | //求和相关的配置 2 | export default { 3 | namespaced:true, 4 | actions: { 5 | jiaOdd(context,value){ 6 | console.log('jiaOdd被调用了') 7 | if(context.state.sum % 2){ 8 | context.commit('JIA',value) 9 | } 10 | }, 11 | jiaWait(context,value){ 12 | console.log("jiaWait被调用了") 13 | setTimeout(()=>{ 14 | context.commit('JIA',value) 15 | },500) 16 | } 17 | }, 18 | mutations:{ 19 | JIA(state,value){ 20 | console.log('JIA被调用了') 21 | state.sum += value 22 | }, 23 | JIAN(store,value){ 24 | console.log('JIAN被调用了') 25 | store.sum -= value 26 | } 27 | }, 28 | state:{ 29 | sum:0, //和 30 | school: '尚硅谷', 31 | subject: '前端' 32 | }, 33 | getters:{ 34 | bigSum(state){ 35 | return state.sum * 10 36 | } 37 | } 38 | } -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/store/index.js: -------------------------------------------------------------------------------- 1 | //该文件用于创建Vuex中最为核心的store 2 | 3 | //引入Vue 4 | import Vue from 'vue' 5 | //引入vuex 6 | import Vuex from 'vuex' 7 | 8 | import person from './person' 9 | import count from './count' 10 | //使用插件 11 | Vue.use(Vuex) 12 | 13 | //创建并暴露store 14 | export default new Vuex.Store({ 15 | modules:{ 16 | countAbout:count, 17 | personAbout:person 18 | } 19 | }) -------------------------------------------------------------------------------- /29_src_求和案例_vuex模块化编码/store/person.js: -------------------------------------------------------------------------------- 1 | import axios from "axios" 2 | import { nanoid } from "nanoid" 3 | 4 | //人员相关的配置 5 | export default { 6 | namespaced:true, 7 | actions:{ 8 | addWang(context,value){ 9 | if(value.name.indexOf('王') === 0){ 10 | context.commit('ADD_PERSON',value) 11 | } else { 12 | alert('添加的人必须姓王') 13 | } 14 | }, 15 | addPersonServer(context){ 16 | axios.get('https://api.uixsj.cn/hitokoto/get?type=social').then( 17 | response => { 18 | context.commit('ADD_PERSON',{id:nanoid(),name:response.data}) 19 | }, 20 | error => { 21 | alert(error.message) 22 | } 23 | ) 24 | } 25 | }, 26 | mutations:{ 27 | ADD_PERSON(store,value){ 28 | console.log('ADD_PERSON被调用了') 29 | store.personList.unshift(value) 30 | } 31 | }, 32 | state:{ 33 | personList: [ 34 | {id:'001',name:'张三'} 35 | ] 36 | }, 37 | getters:{ 38 | firstPersonName(state){ 39 | return state.personList[0].name 40 | } 41 | } 42 | } -------------------------------------------------------------------------------- /30_src_路由的基本使用/App.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | -------------------------------------------------------------------------------- /30_src_路由的基本使用/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |

我是About的内容

26 |
27 |
28 |
29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /30_src_路由的基本使用/components/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /30_src_路由的基本使用/components/Home.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /30_src_路由的基本使用/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |

我是Home的内容

26 |
27 |
28 |
29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /30_src_路由的基本使用/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /30_src_路由的基本使用/router/index.js: -------------------------------------------------------------------------------- 1 | // 该文件专门用于创建整个应用的路由器 2 | import VueRouter from 'vue-router' 3 | 4 | //引入组件 5 | import About from '../components/About' 6 | import Home from '../components/Home' 7 | 8 | //创建并暴露一个路由器 9 | export default new VueRouter({ 10 | routes: [ 11 | { 12 | path: '/about', 13 | component: About 14 | }, 15 | { 16 | path: '/home', 17 | component: Home 18 | } 19 | ] 20 | }) -------------------------------------------------------------------------------- /31_src_多级路由/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /31_src_多级路由/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |

我是About的内容

26 |
27 |
28 |
29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /31_src_多级路由/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /31_src_多级路由/home-news.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /31_src_多级路由/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /31_src_多级路由/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /31_src_多级路由/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /31_src_多级路由/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /31_src_多级路由/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 21 | 22 | -------------------------------------------------------------------------------- /31_src_多级路由/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /31_src_多级路由/router/index.js: -------------------------------------------------------------------------------- 1 | // 该文件专门用于创建整个应用的路由器 2 | import VueRouter from 'vue-router' 3 | 4 | //引入组件 5 | import About from '../pages/About' 6 | import Home from '../pages/Home' 7 | import News from '../pages/News' 8 | import Message from '../pages/Message' 9 | 10 | //创建并暴露一个路由器 11 | export default new VueRouter({ 12 | routes: [ 13 | { 14 | path: '/about', 15 | component: About 16 | }, 17 | { 18 | path: '/home', 19 | component: Home, 20 | children:[ 21 | { 22 | path: 'news', 23 | component: News 24 | }, 25 | { 26 | path: 'message', 27 | component: Message 28 | } 29 | ] 30 | } 31 | ] 32 | }) -------------------------------------------------------------------------------- /32_src_路由的query参数/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /32_src_路由的query参数/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /32_src_路由的query参数/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /32_src_路由的query参数/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /32_src_路由的query参数/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /32_src_路由的query参数/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /32_src_路由的query参数/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 39 | 40 | -------------------------------------------------------------------------------- /32_src_路由的query参数/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /32_src_路由的query参数/router/index.js: -------------------------------------------------------------------------------- 1 | // 该文件专门用于创建整个应用的路由器 2 | import VueRouter from 'vue-router' 3 | 4 | //引入组件 5 | import About from '../pages/About' 6 | import Home from '../pages/Home' 7 | import News from '../pages/News' 8 | import Message from '../pages/Message' 9 | import Detail from '../pages/Detail' 10 | 11 | //创建并暴露一个路由器 12 | export default new VueRouter({ 13 | routes: [ 14 | { 15 | path: '/about', 16 | component: About 17 | }, 18 | { 19 | path: '/home', 20 | component: Home, 21 | children:[ 22 | { 23 | path: 'news', 24 | component: News 25 | }, 26 | { 27 | path: 'message', 28 | component: Message, 29 | children:[ 30 | { 31 | path:'detail', 32 | component:Detail 33 | } 34 | ] 35 | } 36 | ] 37 | } 38 | ] 39 | }) -------------------------------------------------------------------------------- /33_src_命名路由/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /33_src_命名路由/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |

我是About的内容

26 |
27 |
28 |
29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /33_src_命名路由/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /33_src_命名路由/home-news.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /33_src_命名路由/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /33_src_命名路由/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /33_src_命名路由/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /33_src_命名路由/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /33_src_命名路由/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /33_src_命名路由/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 46 | 47 | -------------------------------------------------------------------------------- /33_src_命名路由/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /33_src_命名路由/router/index.js: -------------------------------------------------------------------------------- 1 | // 该文件专门用于创建整个应用的路由器 2 | import VueRouter from 'vue-router' 3 | 4 | //引入组件 5 | import About from '../pages/About' 6 | import Home from '../pages/Home' 7 | import News from '../pages/News' 8 | import Message from '../pages/Message' 9 | import Detail from '../pages/Detail' 10 | 11 | //创建并暴露一个路由器 12 | export default new VueRouter({ 13 | routes: [ 14 | { 15 | name:'aboutName', 16 | path: '/about', 17 | component: About 18 | }, 19 | { 20 | path: '/home', 21 | component: Home, 22 | children:[ 23 | { 24 | path: 'news', 25 | component: News 26 | }, 27 | { 28 | path: 'message', 29 | component: Message, 30 | children:[ 31 | { 32 | name:'detailName', 33 | path:'detail', 34 | component:Detail 35 | } 36 | ] 37 | } 38 | ] 39 | } 40 | ] 41 | }) -------------------------------------------------------------------------------- /34_src_路由的params参数/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /34_src_路由的params参数/about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |

我是About的内容

26 |
27 |
28 |
29 |
30 |
31 | 32 | -------------------------------------------------------------------------------- /34_src_路由的params参数/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /34_src_路由的params参数/home-news.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /34_src_路由的params参数/home.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Vue App 6 | 7 | 8 | 9 |
10 |
11 |
12 | 13 |
14 |
15 |
16 |
17 |
18 | About 19 | Home 20 |
21 |
22 |
23 |
24 |
25 |
26 |

Home组件内容

27 |
28 | 36 |
    37 |
  • news001
  • 38 |
  • news002
  • 39 |
  • news003
  • 40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 | 49 | -------------------------------------------------------------------------------- /34_src_路由的params参数/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /34_src_路由的params参数/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /34_src_路由的params参数/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /34_src_路由的params参数/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /34_src_路由的params参数/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 50 | 51 | -------------------------------------------------------------------------------- /34_src_路由的params参数/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /34_src_路由的params参数/router/index.js: -------------------------------------------------------------------------------- 1 | // 该文件专门用于创建整个应用的路由器 2 | import VueRouter from 'vue-router' 3 | 4 | //引入组件 5 | import About from '../pages/About' 6 | import Home from '../pages/Home' 7 | import News from '../pages/News' 8 | import Message from '../pages/Message' 9 | import Detail from '../pages/Detail' 10 | 11 | //创建并暴露一个路由器 12 | export default new VueRouter({ 13 | routes: [ 14 | { 15 | name:'aboutName', 16 | path: '/about', 17 | component: About 18 | }, 19 | { 20 | path: '/home', 21 | component: Home, 22 | children:[ 23 | { 24 | path: 'news', 25 | component: News 26 | }, 27 | { 28 | path: 'message', 29 | component: Message, 30 | children:[ 31 | { 32 | name:'detailName', 33 | path:'detail/:id/:title', 34 | component:Detail 35 | } 36 | ] 37 | } 38 | ] 39 | } 40 | ] 41 | }) -------------------------------------------------------------------------------- /35_src_路由的props配置/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /35_src_路由的props配置/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /35_src_路由的props配置/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /35_src_路由的props配置/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /35_src_路由的props配置/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /35_src_路由的props配置/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | -------------------------------------------------------------------------------- /35_src_路由的props配置/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /36_src_router-link的replace属性/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | -------------------------------------------------------------------------------- /36_src_router-link的replace属性/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /37_src_编程式路由导航/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /37_src_编程式路由导航/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /38_src_缓存路由组件/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /38_src_缓存路由组件/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /39_src_两个新的生命周期钩子/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /40_src_全局路由守卫/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /40_src_全局路由守卫/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /41_src_独享路由守卫/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /41_src_独享路由守卫/pages/News.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /42_src_组件内路由守卫/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /42_src_组件内路由守卫/pages/News.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /43_src_history模式与hash模式/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | -------------------------------------------------------------------------------- /43_src_history模式与hash模式/pages/News.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /44_src_element-ui/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | 4 | //引入app 5 | import App from './App' 6 | 7 | //完整引入 8 | //引入ElementUI组件库 9 | // import ElementUI from 'element-ui'; 10 | //引人ElementUI全部样式 11 | // import 'element-ui/lib/theme-chalk/index.css'; 12 | 13 | //按需引入 14 | import { Row,Button,DatePicker } from 'element-ui' 15 | 16 | Vue.component('atguigu-row', Row ) 17 | Vue.component(Button.name, Button ) 18 | Vue.component(DatePicker.name, DatePicker ) 19 | 20 | //关闭vue的生产提示 21 | Vue.config.productionTip = false 22 | 23 | //应用ElementUI 24 | // Vue.use(ElementUI); 25 | 26 | //创建vm 27 | new Vue({ 28 | el:'#app', 29 | render: h => h(App), 30 | }) -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset', 4 | ["@babel/preset-env", { "modules": false }] 5 | ], 6 | plugins: [ 7 | [ 8 | "component", 9 | { 10 | "libraryName": "element-ui", 11 | "styleLibraryName": "theme-chalk" 12 | } 13 | ] 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue_test", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "animate.css": "^4.1.1", 12 | "axios": "^0.24.0", 13 | "connect-history-api-fallback": "^1.6.0", 14 | "core-js": "^3.6.5", 15 | "element-ui": "^2.15.6", 16 | "nanoid": "^3.1.30", 17 | "pubsub-js": "^1.9.4", 18 | "vue": "^2.6.11", 19 | "vue-resource": "^1.5.3", 20 | "vue-router": "^3.5.3", 21 | "vuex": "^3.6.2" 22 | }, 23 | "devDependencies": { 24 | "@vue/cli-plugin-babel": "~4.5.0", 25 | "@vue/cli-plugin-eslint": "~4.5.0", 26 | "@vue/cli-service": "~4.5.0", 27 | "babel-eslint": "^10.1.0", 28 | "babel-plugin-component": "^1.1.1", 29 | "eslint": "^6.7.2", 30 | "eslint-plugin-vue": "^6.2.2", 31 | "vue-template-compiler": "^2.6.11" 32 | }, 33 | "eslintConfig": { 34 | "root": true, 35 | "env": { 36 | "node": true 37 | }, 38 | "extends": [ 39 | "plugin:vue/essential", 40 | "eslint:recommended" 41 | ], 42 | "parserOptions": { 43 | "parser": "babel-eslint" 44 | }, 45 | "rules": {} 46 | }, 47 | "browserslist": [ 48 | "> 1%", 49 | "last 2 versions", 50 | "not dead" 51 | ] 52 | } 53 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/public/favicon.ico -------------------------------------------------------------------------------- /public/image/vuex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/public/image/vuex.png -------------------------------------------------------------------------------- /public/image/全局事件总线.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/public/image/全局事件总线.png -------------------------------------------------------------------------------- /public/image/消息订阅与发布.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xingwei07/vue_test/85867ccb36c0a8297e13a331655bd407d8f541fa/public/image/消息订阅与发布.png -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 硅谷主页 16 | 17 | 18 | 19 | 22 | 23 |
24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | -------------------------------------------------------------------------------- /src/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | //引入Vue 2 | import Vue from 'vue' 3 | //引入app 4 | import App from './App' 5 | //引入vue-router 6 | import VueRouter from 'vue-router' 7 | //引入路由器 8 | import router from './router' 9 | 10 | //关闭vue的生产提示 11 | Vue.config.productionTip = false 12 | 13 | //使用路由器 14 | Vue.use(VueRouter) 15 | 16 | //创建vm 17 | new Vue({ 18 | el:'#app', 19 | render: h => h(App), 20 | router 21 | // mounted(){ 22 | // setTimeout(()=>{ 23 | // this.$destroy() 24 | // },3000) 25 | // } 26 | }) -------------------------------------------------------------------------------- /src/pages/About.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /src/pages/Detail.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | -------------------------------------------------------------------------------- /src/pages/Home.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /src/pages/Message.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | -------------------------------------------------------------------------------- /src/pages/News.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | lintOnSave: false, //关闭语法检查 3 | //开启代理服务器(方式一) 4 | // devServer: { 5 | // proxy: 'http://localhost:5000' 6 | // }, 7 | //开启代理服务器(方式二) 8 | devServer: { 9 | proxy: { 10 | '/api': { 11 | target: 'http://localhost:5000', 12 | pathRewrite: {'/api':''}, //重写路径 13 | // ws: true, //用于支持websocket 14 | // changeOrigin: true //用于控制请求中的host值 15 | }, 16 | '/foo': { 17 | target: 'http://localhost:5001', 18 | pathRewrite: {'/foo':''}, //重写路径 19 | // ws: true, //用于支持websocket 20 | // changeOrigin: true //用于控制请求中的host值 21 | } 22 | } 23 | } 24 | } --------------------------------------------------------------------------------