main.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //引入vue框架
  2. import Vue from "vue";
  3. //引入路由
  4. import VueRouter from 'vue-router';
  5. //引入vuex状态管理
  6. import Vuex from 'vuex';
  7. //axios的ajax封装库
  8. import axios from "axios";
  9. /*import Mui from "mui";
  10. import "mui/dist/css/mui.css"*/
  11. import Mui from "vue-awesome-mui";
  12. import "vue-awesome-mui/mui/dist/css/mui.css"
  13. Vue.use(Mui)
  14. console.log(Vue.prototype)
  15. Vue.use(Vuex);
  16. //通过 Vue.use()明确地安装路由功能
  17. Vue.use(VueRouter);
  18. //挂载axios在Vue构造器下
  19. Vue.prototype.$ajax = axios;
  20. //引入组件
  21. import index from "./components/index.vue";
  22. import accordion from "./components/examples/accordion.vue";
  23. import actionsheet from "./components/examples/actionsheet.vue";
  24. import badges from "./components/examples/badges.vue";
  25. import buttons from "./components/examples/buttons.vue";
  26. import buttonsWithIcons from "./components/examples/buttons-with-icons.vue";
  27. import buttonsWithBadges from "./components/examples/buttons-with-badges.vue"
  28. var router = new VueRouter({
  29. routes: [{
  30. path: '/index',
  31. component: index,
  32. }, {
  33. path: '/accordion',
  34. component: accordion,
  35. }, {
  36. path: '/actionsheet',
  37. component: actionsheet,
  38. }, {
  39. path: '/badges',
  40. component: badges,
  41. }, {
  42. path: '/buttons',
  43. component: buttons,
  44. }, {
  45. path: '/buttons-with-icons',
  46. component: buttonsWithIcons,
  47. }, {
  48. path: '/buttons-with-badges',
  49. component: buttonsWithBadges,
  50. }, {
  51. path: '/',
  52. redirect: '/index'
  53. }]
  54. });
  55. //新建一个状态管理
  56. var store = new Vuex.Store({
  57. //定义一个状态
  58. //所有组件的状态,也就是数据源
  59. state: {
  60. count: 1,
  61. title: "标题",
  62. search: "",
  63. news: null,
  64. imgUrl: null,
  65. isShowGallery: false,
  66. direction: "left"
  67. },
  68. getters: {
  69. getCount(state) {
  70. //处理数据
  71. return state.count + "ed"
  72. }
  73. },
  74. //分发状态
  75. mutations: {
  76. setCount(state, data) {
  77. state.count = data
  78. },
  79. settitle(state, data) {
  80. state.title = data
  81. },
  82. setNews(state) {
  83. axios.get('https://cnodejs.org/api/v1//topics')
  84. .then((response) => {
  85. state.news = response.data.data
  86. })
  87. .catch((error) => {
  88. console.log(error);
  89. });
  90. }
  91. },
  92. //action就是触发mutations
  93. actions: {
  94. setChange(context, data) {
  95. context.commit('setCount', data)
  96. context.commit('settitle', data)
  97. },
  98. setNews(context, data) {
  99. context.commit('setNews')
  100. }
  101. }
  102. })
  103. new Vue({
  104. el: "#demo",
  105. template: `
  106. <router-view></router-view>
  107. `,
  108. router,
  109. store,
  110. })