vue项目总结,所用到的技术点

1.用到的技术点

vue     是一个渐进式JavaScript框架    npm install vue
vue-route    是一个路由匹配功能    npm install vue-router
vue-resource    发送ajax请求的    npm install vue-resource
vue-preview     图片预览插件        npm i vue-preview -S
vuex    组件传值    npm install vuex --save
mint-ui    基于vue的移动端组件    npm i mint-ui -S
mui    最接近原生的前端框架

2.  template.html  是整个主页面,最终所有的js和css和html都会匹配到这里的

  1.只需要定义一个ID容器  <div id="app"></div>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Vue项目</title>
    <!-- 我是一个好人 -->
    <style>
        @media only screen and (width:320px){
            html{
                font-size:16px;
            }
        }

        @media only screen and (width:360px){
            html{
                font-size:18px;
            }
        }

        @media only screen and (width:414px){
            html{
                font-size:20px;
            }
        }

        body{
            margin: 0px;
            padding: 0px;
        }
    </style>
</head>
<body>
    <div id="app"></div>
</body>
</html>

2.  main.js   是一个主模块集成了所有的第三方包和css文件和js文件和路由匹配  

  1.引入第三方包,使用import关键字,基于vue的必须集成到vue中以 Vue.use() 方法

  2.导入项目中所需要的css

  3.让app.vue给用户显示的第一个组件

    1.首先app.vue引入到mian.js中  import App from ‘./App.vue‘

    2.在Vue实例中定义render函数,变量名需要一致

      render:function(createElement){ //项目一启动之后,呈现给用户的第一个组件

        return createElement(App)

      }

  4.设置全局过滤器  Vue.filter()

  5.路由整个步骤

    1.导入需要设置路由的组件 

import home from ‘./components/home/home.vue‘
import category from ‘./components/category/category.vue‘

    2.设置路由规则 new VueRouter实例  

   

const router = new VueRouter({
        routes:[
          {path:‘/‘,redirect:‘/home‘},
          {path:‘/home‘,component:home},
          {path:‘/category‘,component:category},
          {name:"pictureAndTextIntruduction",path:"/goods/pictureAndTextIntruduction",component:pictureAndTextIntruduction},
          {path:"/goods/goodscomment",component:goodscomment}
        ]
      })
    3.把路由匹配规则放到跟实例 new Vue({})的router中,就实现整个路由匹配功能了
new Vue({
   router:router
})   
6.vuex的使用步骤  1.新建一个空仓库 var store = new Vuex.Store()    仓库里有四个对象    state  存储数据的地方    getters    获取数据的地方    mutations    同步更新数据    actions    异步更新数据  2.把仓库的东西放到跟实例中,变量名需一致
new Vue({
   store:store
})   
     
//导入我们的第三方包
import Vue from ‘vue‘ //es5 ===> var vue = require(‘vue‘)
import Mint from ‘mint-ui‘
import VueRouter from ‘vue-router‘
import VueResource from ‘vue-resource‘
import moment from ‘moment‘
import VuePreview from ‘vue-preview‘
import axios from ‘axios‘
import Vuex from ‘vuex‘

//集成到Vue中
Vue.use(Mint)
Vue.use(VueRouter) // vue.$route vue.$router
Vue.use(VueResource) //vue.$http...
Vue.use(VuePreview)
Vue.use(Vuex) //$store

Vue.prototype.$axios = axios

//导入项目中需要用到的css
import ‘mint-ui/lib/style.min.css‘
import ‘./statics/mui/css/mui.min.css‘
import ‘./statics/css/common.css‘ //自己写的样式,放在最好

//导入我们要渲染的根组件这个模块
import App from ‘./App.vue‘

//全局过滤器
Vue.filter(‘dateFmt‘,(input,formatString)=>{
    const lastFormatString = formatString || ‘YYYY-MM-DD HH:mm:ss‘

    /**
     * 参数1:格式化的原始时间
     * 参数2:格式化的字符串
     */
    return moment(input).format(lastFormatString)
})

//导入需要设置路由规则的组件
import home from ‘./components/home/home.vue‘
import category from ‘./components/category/category.vue‘
import shopcart from ‘./components/shopcart/shopcart.vue‘
import mine from ‘./components/mine/mine.vue‘
import newslist from ‘./components/news/newslist.vue‘
import newsinfo from ‘./components/news/newsinfo.vue‘
import photolist from ‘./components/photo/photolist.vue‘
import photoinfo from ‘./components/photo/photoinfo.vue‘
import goodslist from ‘./components/goods/goodslist.vue‘
import goodsinfo from ‘./components/goods/goodsinfo.vue‘
import pictureAndTextIntruduction from ‘./components/goods/pictureAndTextIntruduction.vue‘
import goodscomment from ‘./components/goods/goodscomment.vue‘

//创建路由对象,设置路由规则
const router = new VueRouter({
    routes:[
        {path:‘/‘,redirect:‘/home‘},
        {path:‘/home‘,component:home},
        {path:‘/category‘,component:category},
        {path:‘/shopcart‘,component:shopcart},
        {path:‘/mine‘,component:mine},
        {path:‘/news/newslist‘,component:newslist},
        {path:‘/news/newsinfo/:newsId‘,component:newsinfo},
        {path:‘/photo/photolist‘,component:photolist},
        {path:‘/photo/photoinfo/:photoId‘,component:photoinfo},
        {path:‘/goods/goodslist‘,component:goodslist},
        {path:"/goods/goodsinfo/:goodsId",component:goodsinfo},
        {name:"pictureAndTextIntruduction",path:"/goods/pictureAndTextIntruduction",component:pictureAndTextIntruduction},
        {path:"/goods/goodscomment",component:goodscomment}
    ]
})

//创建一个仓库
//window
const store = new Vuex.Store({
  state: {//存储数据的地方
    goodsList:[]
  },
  getters: {//获取数据
    //获取加入购物车的商品的数组
    getGoodsList(state){
        return state.goodsList
    },
    //获取加入购物车中的总数量
    getGoodsCount(state){
        let totalCount = 0
        for(var i=0;i<state.goodsList.length;i++){
            totalCount+=state.goodsList[i].count
        }

        return totalCount
    }
  },
  mutations: {//`同步更改数据`
    /**
     * 添加商品到购物车的方法
     * 其中参数1固定的,就是代表我们的state
     * 参数2:商品信息的对象
     */
    addGoods(state,goodsObj){
        //console.log("添加商品到购物车")
        //console.log(goodsObj)
        //goodsObj ==> {goodsId:87,count:3}
        state.goodsList.push(goodsObj)
        //console.log(state.goodsList)
    },
    deleteGoodsById(state,goodsId){
        for(var i = state.goodsList.length-1 ;i>=0;i--){
            if(goodsId==state.goodsList[i].goodsId){
                state.goodsList.splice(i,1)
            }
        }
    }
  },
  actions: {//`异步更改数据`
    //可以认为是$store对象
    addGoodsAction(context,goodsObj){
        //调用mutations
        context.commit(‘addGoods‘,goodsObj)
    }
  }
})

//创建根实例,到时候,Vue去解析id=app的div
new Vue({
    el:"#app",
    router,
    store,
    render:function(createElement){ //项目一启动之后,呈现给用户的第一个组件
        return createElement(App)
    }
})

  

时间: 2024-09-30 00:34:37

vue项目总结,所用到的技术点的相关文章

vue-用Vue-cli从零开始搭建一个Vue项目

Vue是近两年来比较火的一个前端框架(渐进式框架吧). Vue两大核心思想:组件化和数据驱动.组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用:数据驱动是前端的未来发展方向,释放了对DOM的操作,让DOM随着数据的变化自然而然的变化(尤神原话),不必过多的关注DOM,只需要将数据组织好即可.本文用Vue-cli从零开始搭建一个Vue项目. 准备工作 1.下载安装Node.js 下载地址:https://nodejs.org/en/download/ ,选择合适自己的版本下载即可

学习JavaWeb项目开发需要掌握的技术

武汉java培训学习JavaWeb项目开发需要掌握的技术,国内外信息化建设已经进入基于Web应用为核心的阶段, java作为应用于网络的最好语言,前景无限看好.然而,就算用Java建造一个不是很烦琐的web应用,也不是件轻松的事情.概括一下,实施Java的WEB项目需要掌握的技术如下:Java语言面向对象分析设计思想设计模式和框架结构XML语言网页脚本语言数据库应用服务器集成开发环境下面我们具体地看每个技术.1.Java语言Java语言体系比较庞大,包括多个模块.从WEB项目应用角度讲有JSP.

vue项目使用keep-alive的作用

在vue项目中,难免会有列表页面或者搜索结果列表页面,点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回时这个页面还是之前搜索的结果列表,这时候就需要用到vue的keep-alive技术了. keep-alive 简介 keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染.用法也很简单: <keep-alive> <component> <!-- 该组件将被缓存! --

前端框架Vue.js——vue-i18n ,vue项目中如何实现国际化

每天学习一点点 编程PDF电子书.视频教程免费下载:http://www.shitanlife.com/code 一.前言 趁着10月的最后一天,来写一篇关于前端国际化的实践型博客.国际化应该都不陌生,就是一个网站.应用可以实现语言的切换. 在这就不谈原理,只说说如何实现中英文的切换.做技术的总得先把 demo 做出来嘛. 二.demo 场景需求分析 需求很简单,左上角 ''网易云音乐''就是一个中英文切换的按钮,点击弹出提示框,确认切换语言后,实现英文版本. 切换成英文版本: 三.实现国际化

vue项目搭建 (一)

vue项目搭建 (一) 由于一直想要有自己的框架,因而一直在尝试搭建各类结构,结合vue官网及git上大神bailicangdu的项目,再看看网上一些意见,及个人思考,总结的一些,不到之处希望大家可以帮我指证,必定虚心接受 技术栈: vue2+vue-router+vuex+axios+webpack+es6/7 项目布局 vue-cli构建初始项目后,在src中进行增删修改 // 此处是模仿github上 bailicangdu 的 ├── src | ├── apsi | | ├── api

Weex/Vue项目中静态资源缓存处理.md

目录 一.项目缓存问题 二.浏览器本地缓存 三.解决方案 今年公司技术考察,考察了EMAS平台,从而接触了weex,并且为了进行POC测试,大胆采用weex进行新web项目试点.weex内置了vue框架,整体框架与vue一致,好在刚接触了vue一段时间,因此用起来还算顺手,碰到问题weex官方文档没有的,基本都可以参考vue的文档. 一.项目缓存问题 第一次接触这类前后端完全分离的开发模式,一开始的确是一头雾水,一个多月时间,难点一点一点克服,目前进入项目测试阶段,经常碰到bug修复了,测试人员

基于Mint UI开发VUE项目一之环境搭建和头部底部导航栏的实现

一:简介 Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要.通过它,可以快速构建出风格统一的页面,提升开发效率.真正意义上的按需加载组件.可以只加载声明过的组件及其样式文件,无需再纠结文件体积过大.考虑到移动端的性能门槛,Mint UI 采用 CSS3 处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验.依托 Vue.js 高效的组件化方案,Mint UI 做到了轻量化.即使全部引入,压缩后的文件体积也仅有 ~30kb (JS + CSS

vue项目中遇到的那些事。

前言 有好几天没更新文章了.这段实际忙着做了一个vue的项目,从 19 天前开始,到今天刚好 20 天,独立完成. 做vue项目做这个项目一方面能为工作做一些准备,一方面也精进一下技术. 技术栈:vue2 + vuex + vue-router + webpack + ES6/7 + element-ui + vue-baidu-map + i18n + vue-awesome-swiper 做项目时总是有一些思考和踩过的坑,对以后有一定的帮助,今天就来写写做vue项目遇到的那些事. 假如你正准

使用webpack搭建vue项目

有一句话叫"前人栽树后人乘凉",还有一句话叫"如果说我看得比别人更远些,那是因为我站在巨人的肩膀上".前一句是国人的俗语,后一句是那个发现了"万有引力"定律的牛顿说的.为什么要引用这两句呢?是因为我刚开始用vue的时候,使用的是vue-cli来搭建vue项目,快速又好用:我刚开始用react的时候,使用的是create-react-app来搭建react项目,方便又省事.使用这些已有的脚手架来搭建项目,无可厚非,对于新手来说,也确实能快速构建,不