Vue项目化

栏目: 编程语言 · 发布时间: 5年前

内容简介:使用vue Cli这里使用webStrom生成vue文件

使用vue Cli

这里使用webStrom生成vue文件

Vue项目化

主文件

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  el: '#app',
  render: function (createElement) {
    return createElement(App);
  }
})

使用渲染函数,Vue文件导入,挂载到appDom节点上

路由

这里使用vue全家桶的route https://router.vuejs.org/zh/

根据Url 分发视图

这个需要好好学。。。。

Vue中最重要的一块

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>

<div id="app">
    <h1>Hello App!</h1>
    <p>
        <!-- 使用 router-link 组件来导航. -->
        <!-- 通过传入 `to` 属性指定链接. -->
        <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
        <router-link to="/foo">Go to Foo</router-link>
        <router-link to="/bar">Go to Bar</router-link>
    </p>
    <!-- 路由出口 -->
    <!-- 路由匹配到的组件将渲染在这里 -->
    <router-view></router-view>
</div>
<script>
    const Foo = {
        template: '<div>foo</div>',
    }
    const Bar = {
        template: '<div>bar</div>'
    }
    const routes = [
        {path: '/foo', component: Foo},
        {path: '/bar', component: Bar}
    ]
    const router = new VueRouter({
        routes: routes
    })
    const app = new Vue({
        router
    }).$mount('#app')
</script>
</body>
</html>

动态路由匹配

会进行匹配,参数值会进行替换

嵌套路由

状态管理

这里使用vuex

https://vuex.vuejs.org/zh/

所有分散的共享数据由状态管理器保管

使用vuex

当store中状态发生变化,视图重新渲染

改变store中的状态进行提交

state维护应用层状态。。

在项目中使用vuex

使用脚手架搭建出vuex

new Vue({
  // state
  data () {
    return {
      count: 0
    }
  },
  // view
  template: `
    <div>{{ count }}</div>
  `,
  // actions
  methods: {
    increment () {
      this.count++
    }
  }
})
这个状态自管理应用包含以下几个部分:

state,驱动应用的数据源;
view,以声明方式将 state 映射到视图;
actions,响应在 view 上的用户输入导致的状态变化。

驱动映射的数据源 -> 声明state映射到视图,-> actions 响应变化,形成闭环

加数器

创建目录如下

Vue项目化

定义数据仓库

// 加数器模块

export default {
    namespaced: true,   // 独立命名空间
    // 维护应用层状态,确保应用有唯一数据源
    state: {
        count: 0
    },
    // 唯一数据源的缓存值 定义获取数据的方法
    getters: {
        tenTimesCount: (state, getters, rootState, rootGetters) => {
            console.log(state, getters, rootGetters, rootState);
            return state.count * 10;
        }
    },
    // 定义修改数据的方式
    mutations: {
      addCount: (state, num) => {
          // 若num值为空赋值为1
          state.count += num || 1
      }
    },
    // actions 提交mutations 执行异步操作
    actions: {
        addCountAsync: (context, num) => {
            // 这里异步执行
            setInterval(() => {
                // 提交mutations
                context.commit('addCount', num || 100)
            }, num || 100)
        }
    }
}

导出数据仓库

// 输出文件
import Vue from 'vue'
import Vuex from 'vuex'
import count from './modules/counter'

Vue.use(Vuex)

// 导出实例化仓库
export default new Vuex.Store({
    modules: {
        count: count
    }
})

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

失业的程序员

失业的程序员

沈逸 / 2014-5-1 / 39.00元

这是一个程序员从失业到自行创业的奋斗历程,虽然囧事连连、过程曲折,却充满了趣味。本书以作者的真实创业经历为主线,文字幽默诙谐,情节生动真实,包括了招聘、团队管理和用户公关,以及技术架构设计、核心代码编写、商务谈判、项目运作等场景经验。 从初期的创业伙伴、领路人,到商业竞争对手,各种复杂的关系在各个关键时刻却都发生了意想不到的逆转。在历经千辛万苦,眼看快要成功时,主人公却几乎再次失业。 ......一起来看看 《失业的程序员》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具