限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >前端技术 >Vue.js

vue+elementUI项目实战1

分类:Vue.js时间:2020-07-01浏览:3078

可视化新建项目

打开可视化面板
vue ui
image-20200701103311705 创建项目 image-20200701103242645image-20200701103418984image-20200701103620582image-20200701103707915image-20200701103901875 可以保存为预设,下次使用此预设时就不需要再次配置了 创建完成后我们可以看到他的文件结构 image-20200701104332082image-20200701104356103

vue3初体验

入口文件在public中,不在根目录 配置全局变量 根目录新建vue.config.js
// Vue.config.js 配置选项
module.exports = {
    // 选项
    //  基本路径 vue.cli 3.3以前请使用baseUrl
    publicPath: "/",
    //  构建时的输出目录
    outputDir: "dist",
    //  放置静态资源的目录
    assetsDir: "",
    //  是否为生产环境构建生成 source map?
    productionSourceMap: true,
    //  调整内部的 webpack 配置
    configureWebpack: () => {}, //(Object | Function)
    chainWebpack: () => {},

    // CSS 相关选项
    css: {
        // 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)
        // 也可以是一个传递给 `extract-text-webpack-plugin` 的选项对象
        extract: true,
        // 是否开启 CSS source map?
        sourceMap: false,
        // 为预处理器的 loader 传递自定义选项。比如传递给
        // Css-loader 时,使用 `{ Css: { ... } }`。
        loaderOptions: {},
        // 为所有的 CSS 及其预处理文件开启 CSS Modules。
        // 这个选项不会影响 `*.vue` 文件。
        modules: false
    },

    // 配置 webpack-dev-server 行为。
    devServer: {
        //true  自动打开浏览器
        open: true,  
        port: 8088,
    },
    // 三方插件的选项
    pluginOptions: {
        // ...
    }
}

启动命令:定位到根目录,执行命令 npm run serve 自动打开项目网页 image-20200701111048896

组件间的传值

新建两个文件child.vue parent.vue image-20200701112505848 父子组件的传值
  • props/$emit
  • $parent/children (获取组件信息)
  • $ref (获取组件信息 给了一个名称)
app.vue




parent.vue





child.vue



非父子组件之间的传值
  • 事件总线
App.vue 向child.vue传值
1.新建bus.js
import Vue from 'vue'
export default new Vue;

2.app.vue
给出点击按钮  
引入bus.js 

3. child.vue

{{childMsg}}

  • $attrs/ $listeners 解决多级组件传值问题

路由

vue-router 跳转

      点击跳转
      

methods:{
    toPage(){
      this.$router.push({path:'/page'})
    }
  }
动态路由
 {
    path: '/list/:id',
    name: 'List',
    component: () => import('../views/List.vue')
  },

  {{$route.params.id}}

Vuex

/store 中
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    count:9
  },
  mutations: {
    add(state){
      state.count++
    },
    decreate(state){
      state.count--
    }
  },
  // 异步操作
  actions: {
    delayAdd(context){
      setTimeout(()=>{
        context.commit('add')
      },1000)
    }
  },
  modules: {
  }
})

获取store中的值

{{vuex_count}}

computed:{ vuex_count(){ return this.$store.state.count } }

插件推荐

image-20200701112358247
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.