码迷,mamicode.com
首页 > 其他好文 > 详细

Vue 3.0初探

时间:2021-06-07 20:31:11      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:log   组件   loading   技术   less   方法   rom   png   object   

项目创建

全局安装vite-app

npm i -g create-vite-app

技术图片

创建项目

vue3test-project是项目名称

create-vite-app vue3test-project

技术图片

代码编写

实例化vue

  1. 引用vue
import { reactive, toRefs, onMounted, computed, watch, watchEffect } from ‘vue‘;
  1. 引用router
import { useRouter } from ‘vue-router‘
  1. 组件内写法
<template>
  <div @click="test()">
     1234567
  </div>
</template>

<script>
import { reactive, toRefs, onMounted, computed, watch, watchEffect } from ‘vue‘;
  export default {
    setup() {
      const state = reactive({
        // 这里写原来的data
      });
      onMounted(() => {});

      function test() {
        // 方法要return出去
      }

      return {
        ...toRefs(state),
        test
      };
    }
  };
</script>

<style lang="less" scoped>

</style>

  1. 取data
     const state = reactive({
        type: 1
      });

      console.log(state.type);
  1. 数据监听(两种方式)
    watchEffect( () => {
      console.log(state.type, ‘改变‘)
    })

    watch(() => state.type, (newValue, oldValue) => {
      console.log(type, ‘改变‘)
    })
  1. 父传子

父组件:

    <template>
        <test :type="type"/>
    </template>

子组件:

export default {
    name: ‘test‘,
    props: {
        detail: {
          type: Object,
          default: {}
        }
      }
    setup(props) {
      console.log(props.type);
    }
}
  1. 子传父

父组件:

    <template>
        <test @onjieshou="jieshou"/>
    </template>

    function jieshou(value) {
      console.log(value); // value是1
    }

子组件:

export default {
    name: ‘test‘,
    emits: [‘onjieshou‘],
    setup(props, { emit }) {
      function test() {
          emit(‘onjieshou‘, 1);
      }
    }
}

Vue 3.0初探

标签:log   组件   loading   技术   less   方法   rom   png   object   

原文地址:https://www.cnblogs.com/lzb1234/p/14823206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!