注意:

有时候使用npm i node-sass -D装不上,这时候,就必须使用 cnpm i node-sass -D

在普通页面中使用render函数渲染组件

在webpack中配置.vue组件页面的解析

  1. 运行cnpm i vue -S将vue安装为运行依赖;

  2. 运行cnpm i vue-loader vue-template-compiler -D将解析转换vue的包安装为开发依赖;

  3. 运行cnpm i style-loader css-loader -D将解析转换CSS的包安装为开发依赖,因为.vue文件中会写CSS样式;

  4. 在webpack.config.js中,添加如下module规则:

​
module: {
​
  rules: [
​
    { test: /\.css$/, use: ['style-loader', 'css-loader'] },
​
    { test: /\.vue$/, use: 'vue-loader' }
​
  ]
​
}
​
  1. 创建App.js组件页面:

​
  <template>
​
    <!-- 注意:在 .vue 的组件中,template 中必须有且只有唯一的根元素进行包裹,一般都用 div 当作唯一的根元素 -->
​
    <div>
​
      <h1>这是APP组件 - {{msg}}</h1>
​
      <h3>我是h3</h3>
​
    </div>
​
  </template>
​
​
​
  <script>
​
  // 注意:在 .vue 的组件中,通过 script 标签来定义组件的行为,需要使用 ES6 中提供的 export default 方式,导出一个vue实例对象
​
  export default {
​
    data() {
​
      return {
​
        msg: 'OK'
​
      }
​
    }
​
  }
​
  </script>
​
​
​
  <style scoped>
​
  h1 {
​
    color: red;
​
  }
​
  </style>
​
  1. 创建main.js入口文件:

​
  // 导入 Vue 组件
​
  import Vue from 'vue'
​
​
​
  // 导入 App组件
​
  import App from './components/App.vue'
​
​
​
  // 创建一个 Vue 实例,使用 render 函数,渲染指定的组件
​
  var vm = new Vue({
​
    el: '#app',
​
    render: c => c(App)
​
  });
​

在使用webpack构建的Vue项目中使用模板对象?

  1. 在webpack.config.js中添加resolve属性:

resolve: {
  alias: {
    'vue$': 'vue/dist/vue.esm.js'
  }
}

ES6中语法使用总结

  1. 使用 export default 和 export 导出模块中的成员; 对应ES5中的 module.exports 和 export

  2. 使用 import ** from ** 和 import '路径' 还有 import {a, b} from '模块标识' 导入其他模块

  3. 使用箭头函数:(a, b)=> { return a-b; }

在vue组件页面中,集成vue-router路由模块

vue-router官网

  1. 导入路由模块:

​
import VueRouter from 'vue-router'
​
  1. 安装路由模块:

​
Vue.use(VueRouter);
​
  1. 导入需要展示的组件:

​
import login from './components/account/login.vue'
​
import register from './components/account/register.vue'
​
  1. 创建路由对象:

​
var router = new VueRouter({
​
routes: [
​
  { path: '/', redirect: '/login' },
​
  { path: '/login', component: login },
​
  { path: '/register', component: register }
​
]
​
});
​
  1. 将路由对象,挂载到 Vue 实例上:

​
var vm = new Vue({
​
el: '#app',
​
// render: c => { return c(App) }
​
render(c) {
​
  return c(App);
​
},
​
router // 将路由对象,挂载到 Vue 实例上
​
});
​
  1. 改造App.vue组件,在 template 中,添加router-link和router-view:

​
  <router-link to="/login">登录</router-link>
​
  <router-link to="/register">注册</router-link>
​
​
​
  <router-view></router-view>
​

组件中的css作用域问题

样式的scoped是通过css的属性选择器实现的

<style scoped>

div{

color:red;

}

</style>

抽离路由为单独的模块

使用 饿了么的 MintUI 组件

Github 仓储地址

Mint-UI官方文档

  1. 导入所有MintUI组件:

​
import MintUI from 'mint-ui'
​
  1. 导入样式表:

​
import 'mint-ui/lib/style.css'
​
  1. 在 vue 中使用 MintUI:

​
Vue.use(MintUI)
​
  1. 使用的例子:

​
<mt-button type="primary" size="large">primary</mt-button>
​

使用 MUI 组件

官网首页不能使用npm下载,需要手动从GitHub下载

文档地址

  1. 导入 MUI 的样式表:

​
import '../lib/mui/css/mui.min.css'
​
  1. 在webpack.config.js中添加新的loader规则:

​
{ test: /\.(png|jpg|gif|ttf)$/, use: 'url-loader' }
​
  1. 根据官方提供的文档和example,尝试使用相关的组件

将项目源码托管到oschina中

  1. 点击头像 -> 修改资料 -> SSH公钥 如何生成SSH公钥

  2. 创建自己的空仓储,使用 git config --global user.name "用户名" 和 git config --global user.email ***@**.com 来全局配置提交时用户的名称和邮箱

  3. 使用 git init 在本地初始化项目

  4. 使用 touch README.md 和 touch .gitignore 来创建项目的说明文件和忽略文件;

  5. 使用 git add . 将所有文件托管到 git 中

  6. 使用 git commit -m "init project" 将项目进行本地提交

  7. 使用 git remote add origin 仓储地址将本地项目和远程仓储连接,并使用origin最为远程仓储的别名

  8. 使用 git push -u origin master 将本地代码push到仓储中

App.vue 组件的基本设置

  1. 头部的固定导航栏使用 Mint-UI 的 Header 组件;

  2. 底部的页签使用 mui 的 tabbar;

  3. 购物车的图标,使用 icons-extra 中的 mui-icon-extra mui-icon-extra-cart,同时,应该把其依赖的字体图标文件 mui-icons-extra.ttf,复制到 fonts 目录下!

  4. 将底部的页签,改造成 router-link 来实现单页面的切换;

  5. Tab Bar 路由激活时候设置高亮的两种方式:

  • 全局设置样式如下:

​
.router-link-active{
​
    color:#007aff !important;
​
  }
​
  • 或者在 new VueRouter 的时候,通过 linkActiveClass 来指定高亮的类:

​
// 创建路由对象
​
  var router = new VueRouter({
​
    routes: [
​
      { path: '/', redirect: '/home' }
​
    ],
​
    linkActiveClass: 'mui-active'
​
  });
​

实现 tabbar 页签不同组件页面的切换

  1. 将 tabbar 改造成 router-link 形式,并指定每个连接的 to 属性;

  2. 在入口文件中导入需要展示的组件,并创建路由对象:

​
  // 导入需要展示的组件
​
  import Home from './components/home/home.vue'
​
  import Member from './components/member/member.vue'
​
  import Shopcar from './components/shopcar/shopcar.vue'
​
  import Search from './components/search/search.vue'
​
​
​
  // 创建路由对象
​
  var router = new VueRouter({
​
    routes: [
​
      { path: '/', redirect: '/home' },
​
      { path: '/home', component: Home },
​
      { path: '/member', component: Member },
​
      { path: '/shopcar', component: Shopcar },
​
      { path: '/search', component: Search }
​
    ],
​
    linkActiveClass: 'mui-active'
​
  });
​

使用 mt-swipe 轮播图组件

  1. 假数据:

​
lunbo: [
​
      'http://www.itcast.cn/images/slidead/BEIJING/2017440109442800.jpg',
​
      'http://www.itcast.cn/images/slidead/BEIJING/2017511009514700.jpg',
​
      'http://www.itcast.cn/images/slidead/BEIJING/2017421414422600.jpg'
​
    ]
​
  1. 引入轮播图组件:

​
<!-- Mint-UI 轮播图组件 -->
​
  <div class="home-swipe">
​
    <mt-swipe :auto="4000">
​
      <mt-swipe-item v-for="(item, i) in lunbo" :key="i">
​
        <img :src="item" alt="">
​
      </mt-swipe-item>
​
    </mt-swipe>
​
  </div>
​
</div>
​

在.vue组件中使用vue-resource获取数据

  1. 运行cnpm i vue-resource -S安装模块

  2. 导入 vue-resource 组件

​
import VueResource from 'vue-resource'
​
  1. 在vue中使用 vue-resource 组件

Vue.js - day6的更多相关文章

  1. Vue.js 和 MVVM 小细节

    MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自 ...

  2. Vue.js 2.0 和 React、Augular等其他框架的全方位对比

    引言 这个页面无疑是最难编写的,但也是非常重要的.或许你遇到了一些问题并且先前用其他的框架解决了.来这里的目的是看看Vue是否有更好的解决方案.那么你就来对了. 客观来说,作为核心团队成员,显然我们会 ...

  3. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

  4. vue.js学习笔记

    有了孩子之后,元旦就哪也去不了了(孩子太小),刚好利用一些时间,来公司充充电补补课,学习学习新技术,在这里做一个整理和总结.(选择的东西,既然热爱就把他做好吧!). 下来进入咱们的学习环节: 一.从H ...

  5. 从Vue.js窥探前端行业

    近年来前端开发趋势 1.旧浏览器逐渐淘汰,移动端需求增加: 旧浏览器主要指的是IE6-IE8,它是不支持ES5特性的:IE9+.chrome.sarafi.firefox对ES5是完全支持的,移动端大 ...

  6. vue.js初探

    前言 入手2016最火前端框架之一vue.js.大概从网上找了些资料看了下vue.js,从网上的资料来看只能惊叹其发展速度太快,让我意外的是其作者是华人的前提下作品这么受欢迎. 网上的博客和教程各种组 ...

  7. vue.js几行实现的简单的todo list

    序:目前前端框架如:vue.react.angular,构建工具fis3.gulp.webpack等等...... 可谓是五花八门,层出不穷,眼花缭乱...其实吧只要你想玩还是可以玩玩的..下面是看了 ...

  8. Vue.js——60分钟组件快速入门(上篇)

    组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HTML ...

  9. Vue.js——60分钟快速入门

    Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们 ...

随机推荐

  1. HDU3440 House Man (差分约束)

    In Fuzhou, there is a crazy super man. He can’t fly, but he could jump from housetop to housetop. To ...

  2. MTK UART串口调试

    一.UART初始化 1. kernel-3.18/drivers/misc/mediatek/uart/uart.c static int __init mtk_uart_init(void) { ; ...

  3. pytest用例setup和teardown

    函数式以下两种: setup_function/teardown_function  每个用例开始和结束调用一次 setup_module/teardown_module     setup_modu ...

  4. Eigen中的noalias(): 解决矩阵运算的混淆问题

    作者:@houkai本文为作者原创,转载请注明出处:http://www.cnblogs.com/houkai/p/6349990.html 目录 混淆例子解决混淆问题混淆和component级的操作 ...

  5. Android-毛笔的探索与开发

     前言 这篇文章主要是关于移动端毛笔的开发,在平板上有着书写毛笔字贴的效果. 介绍关于毛笔的算法思路. 项目github地址 算法思路分析 曲线拟合算法 利用曲线拟合算法增加虚拟的点,使得笔迹更加光滑 ...

  6. 767. Reorganize String

    Given a string S, check if the letters can be rearranged so that two characters that are adjacent to ...

  7. python 之 函数 迭代器

    5.9 迭代器 5.91 可迭代对象和迭代器对象 1.什么是迭代?:迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来 2.要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象? ...

  8. windows 自定义批处理BAT/CMD启动Redis等软件

    需求:每次开机都需要启动Redis.QQ.IDEA等等好几个软件,手动点击比较无趣.浪费劳动力,所以通过自定义bat文件,进行批量启动. 唯独启动到Redis时出现问题,下面是在bat里运行的路径: ...

  9. 【Luogu P1502】 窗口的星星

    →传送窗口 (复制一下题面好了~) 题目背景 小卡买到了一套新房子,他十分的高兴,在房间里转来转去. 题目描述 晚上,小卡从阳台望出去,“哇~~~~好多星星啊”,但他还没给其他房间设一个窗户,天真的小 ...

  10. assembly x86(nasm)画三角形等图形的实现

    参考了一位大佬的博客 https://blog.csdn.net/qq_40298054/article/details/84496944传送门 https://blog.csdn.net/qq_40 ...