>>分享Web前端开发技术,并对孙卫琴的《精通Vue.js:Web前端开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 20662 个阅读者 刷新本主题
 * 贴子主题:  vue3.0-基本特性和用法 回复文章 点赞(0)  收藏  
作者:mary    发表时间:2021-09-05 01:51:10     消息  查看  搜索  好友  邮件  复制  引用

1.路由配置

vue3.0使用createRouter来创建Vue Router实例

之前用构造函数的方式

createRouter, createWebHashHistory
const router = createRouter({
  history: createWebHashHistory(),
  [
{
    path: '/',
    name: 'Home',
    component: Home
  },
  {
    path: '/about',
    name: 'About',
    component: () => import('../views/About.vue')
  }
  ]
})
export default router

2.初始化状态

vue3.0通过setup方法初始化状态

调用ref()方法返回一个响应式的对象

在setup中对ref返回的数值进行操作时,需要通过.value来获取

// value1只有一个value属性
setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    return {
      value, ienter,addValue1
    }
  }

3.计算属性computed方法和监听器watch方法

watch方法包含两个参数,两个参数都是function

import { ref, toRefs, computed, watch } from 'vue'

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    return {
      value, ienter,addValue1, douValue1
    }
  }

4.获取路由

vue3.0通过getCurrentInstance方法获取当前组件的实例

通过getCurrentInstance方法的ctx属性获得当前上下文

通过计算computed获取store.state.name的值

import { ref, toRefs, computed, watch, getCurrentInstance } from 'vue'

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    const { ctx } = getCurrentInstance()
    // 当前路由信息
    // ctx.$router.currentRoute.value
    
    return {
      value, ienter,addValue1, douValue1
    }
  }

5. Vuex使用

import Vuex from 'vuex'
export default Vuex.createStore({
  state: {
    name: 'licky'
  },
  mutations: {
    setName(state, payload) {
      state.test.a = payload
    }
  },
  actions: {
  },
  modules: {
  }
})

setup() {
    let value1 = ref('disk')
    let ienter = () => {
      console.log(value.value);
    }
    let addValue1 = () => {
      value1.value ++
    }
    let douValue1 = computed(() => value1.value * 2)
    watch(() => value1.value, val=>{
      console.log(val)
    })
    const { ctx } = getCurrentInstance()
    // 当前路由信息
    // ctx.$router.currentRoute.value
    
    let name = computed(() => ctx.$store.state.name)

    let editName = () => {
      ctx.$store.commit('setName', 'new Name zzz')
    }

    return {
      value, ienter,addValue1, douValue1, name, editName
    }
  }

----------------------------
原文链接:https://www.jianshu.com/p/fdffd1d2a12a

程序猿的技术大观园:www.javathinker.net



[这个贴子最后由 flybird 在 2021-09-11 10:29:03 重新编辑]
  Java面向对象编程-->Swing组件(下)
  JavaWeb开发-->Servlet技术详解(Ⅲ)
  JSP与Hibernate开发-->映射一对多关联关系
  Java网络编程-->用Spring整合CXF发布Web服务
  精通Spring-->虚拟DOM和render()函数
  Vue3开发-->绑定CSS样式
  vue3.0 代理Proxy API
  Vue3.0里为什么要用 Proxy API 替代 defineProperty API ? ...
  JavaScript Promise对象的用法
  Velocity.js动画库的使用
  vue封装翻转卡片效果
  用Vue-Awesome-Swiper实现旋转叠加轮播效果,平移轮播效果
  Javascript DOM封装方法汇总
  CSS 盒子模型
  HTML5 播放Audio(音频)
  HTML 区块:div和span元素
  JavaScript 变量提升
  JavaScript的 while 循环语句
  JavaScript prototype(原型对象)
  JavaScript 输出数据
  jQuery Mobile 安装
  更多...
 IPIP: 已设置保密
楼主      
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。