vue

cli 构建项目

cli是脚手架工具, 可以快速构建一个vue项目。

–安装 淘宝镜子, 以后可以用cnpm代替npm
npm install -g cnpm --registry=https://registry.npm.taobao.org

–安装cli,升级为3.1
cnpm install -g @vue/cli

–在一个目录下执行,myvue表示项目名称,
vue init webpack myvue
vue_第1张图片

现在的项目目录结构
vue_第2张图片

– 安装项目所需要的依赖

cd myvue
cnpm install

– 启动项目
npm start 或者 npm run dev

– 运行后访问如下, 一个基本的vue项目就建立成功了
vue_第3张图片

基本指令

打开src/components/helloword.vue,可以看到大致的代码结构是如下3部分组成






模板语法练习

在HelloWorld.vue中练习







新建自己的模板

在components下新建文件VueDemo.vue如下







修改App.vue将VueDemo.vue引入, 就能看到VueDemo.vue的内容了。







css样式绑定







子组件和父组件之间的传值

新建一个learn.vue







在App.vue中引入learn.vue







子组件传给父组件需要事件触发

动态组件

之前用组件都是将组件之间写在那里, 其实可以在component动态的绑定组件,,如下可以通过事件去切换组件。

 


export default {
  name: 'App',
  components: {
     HelloWorld,
     VueDemo,
    learn,
    A,
    B
  },
  data(){
    return{
      flag:true,
      currentComponent:A
    }
  },
  methods:{
    change(){
      if (this.flag){
        this.currentComponent = B;
        this.flag = false;
      }else{
        this.currentComponent = A;
        this.flag = true;
      }
    }
  }
}

组件A如下, 通过事件改变content值







在切换A,B两个组件时,还想让页面记住我在A页面上的操作的话, 只需要使用keep-alive包裹到,这样A页面改变值后,即使切到B组件再切回来A,A的值还是上次的改变的结果

  

获取原始dom

之前都是通过绑定去修改值的,也可以获取dom, 使用ref

    

原始值

改变, 其中mounted是在模板渲染成html后自动调用

  mounted(){
    this.$refs.p1.innerHTML = "改变啦"
  },

插槽slot

  • 单个插槽
    父组件, 只需要在子组件中写html

子组件child2, 用slot将父组件的html引入


  • 多个插槽
  • 在父组件中指定了每个插槽的名字,在子组件中可以根据插槽名称来获取
 
      
      
      
    

子组件如下,因为父组件中没有s3的插槽,所以会显示默认信息


  • 作用域插槽
    可以让子组件传递数据给父组件



父组件使用slot-scope接收子组件内容

 
      
    

动画效果

使用Animate.css, 在index.html中引入