前端项目开发<Vue>

2018-06-16  本文已影响80人  玉圣

一、项目开发配置

1、项目搭建

1.1、项目安装:
1.2、项目结构:

2、框架引入:

2.1、css相关:
2.2、图标样式:
2.3、轮播图框架:
2.4、插件:

二、项目开发代码

1、代码技巧

1.1、简写导入目录:

说明:在项目开发中,在一个js或css文件中如果导入其他目录下的相关文件,就需要通过如下方式,
示例:

<style>
    @import url('../../assets/style/fontStyle.css');
</style>

但如果每次都导入同一目录下的文件,会比较麻烦,就可以通过设置简写路径达到同样的导入效果
配置方法如下,其中key值为自定义的简写名称(如stylePath),value值为配置的路径
示例:

//在{项目目录}\build\webpack.dev.conf.js文件中
resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      'vue$': 'vue/dist/vue.esm.js',
      '@': resolve('src'),
      'stylePath': resolve('src/assets/styles'),  //在这里进行配置简写别名
    }
  },
//使用如下,这里使用了stylus的框架
<style lang="stylus" scoped>
    @import "~stylePath/border.styl"
</style>

2、Vuex的使用及注意点

2.1、Vuex的使用:

3、router-link 的使用技巧

3.1、使用:

在需要跳转的元素外包裹一层<router-link></router-link> ,使用to 语法即可跳转到指定的页面中

    <ul>
        <router-link to="/">
            <li>
                //....
            </li>
        </router-link>
    </ul>
3.2、技巧:

实际上,HTML会将router-link 渲染成<a> 标签
这就会导致被router-link 包裹的元素中的文字显示成<a> 默认的蓝色样式,可通过如下方式解决:

    <ul>
        <router-link
           tag="li"     
           to="/">
            //....
        </router-link>
    </ul>

使用tag将router-link 标记为li 标签,这样既保证了ul 中的子元素为li ,又保证了html在渲染的时候,不会讲router-link 渲染为a 标签

4、页面数据的缓存

4.1、使用:keep-alive

如果某一页面多次被访问,并且其中的数据基本保持不变,则可以使用页面缓存的技术:

    <keep-alive>
        <router-view/>
    </keep-alive>

注:当页面被缓存后,生命周期钩子mounted 方法则只会在第一次进入的时候,执行一次,就不会再执行了。但生命周期钩子方法activated 方法会每次调用

4.2、缓存数据的刷新:

但如果页面的数据根据传过来的参数来判定是否需要缓存和刷新数据,则可以通过生命周期的钩子activated 来实现数据的刷新

        mounted: {
            //首次进入,刷新数据
        },
        activated: {
            //再次进入,根据传入参数判断是否需要再次刷新数据
            if(lastFlag===this.flag) {
                //重新刷新数据
            }
        }
4.3、隔离某些页面的缓存:

如果通过keep-alive 进行页面的缓存,会将其包裹下的路由子页面都会被缓存,假如其中的某一子页面不需要被缓存,则可以通过exclude 语法将不需要缓存的页面隔离出去,保证其每次都会重新加载请求:

    <keep-alive exclude="Detail">
        <router-view/>
    </keep-alive>

注:

5、多页面的拖动影响

5.1、问题说明:

当在一个页面拖动到底部的某个位置的时候,再点击其中的一个元素进入到下一个页面,则进入的这个页面也会被拖到相同的位置,这就造成了多页面的拖动影响

5.2、解决办法:

在路由配置中,加入一项scrollBescrollBehavior ,即每次进行路由切换的时候,让页面的初始位置为指定的x和y值

    export default new Router({
        routes: [{
            path: "/",  //根路径
            name: "Home",   //名称
            component: Home //组件名称
        }, {
            path: "/city",  //指定路径
            name: "City",
            component: City
        }
        //....
        ],
        scrollBehavior (to, from, savedPosotion) {
            return { x: 0, y:0 }
        }
    });

6、页面支持IP访问

6.1、问题说明:

前端项目通过webpage 启动的,它不支持IP的形式进行页面访问,所以需要修改项目的默认配置项

6.2、解决方案:

在项目的根目录下的package.json文件中,进行如下配置:

"scripts": {
    "dev": "webpack-dev-server --host 0.0.0.0 --inline --progress --config build/webpack.dev.conf.js",
    ......
  },

注:主页增加了--host 0.0.0.0

7、兼容性问题

7.1、问题说明:

在某些浏览器和手机上不支持一些es6和vue的新特性,就会出现兼容性的问题

7.1、解决方案:

通过使用第三方框架库babel-polyfill来解决兼容性问题

参考文章:https://blog.csdn.net/crazyfeeling/article/details/70241285

8、项目打包上线

9、异步组件的使用:

9.1、使用方式:
9.2、注意事项:

三、相关参考

1、项目开发参考

1.1、集成自定义的模板脚手架:

四、相关问题

1、发布项目遇到图片找不到情况:

1.1、问题描述:
1.2、解决方案:

说明:

上一篇 下一篇

猜你喜欢

热点阅读