一、需求
目标:基于脚手架创建项目,构建 vuex 多组件数据共享环境
结果是三个组件共享一份数据:
- 任意一个组件都可以修改数据
- 三个组件的数据是同步的
二、创建项目
1.创建项目
由于现在是在学基础语法,为了目次的办理,先不勾上,但是以后做项目标时候,这两个都是必要勾选上的
三、创建组件
2.创建三个组件, 目次如下
- |-components
- |--Son1.vue
- |--Son2.vue
- |-App.vue
复制代码 3.源代码如下
App.vue在入口组件中引入 Son1 和 Son2 这两个子组件
- <template>
- <div id="app">
- <h1>根组件</h1>
- <input type="text">
- <Son1></Son1>
- <hr>
- <Son2></Son2>
- </div>
- </template>
- <script>
- import Son1 from './components/Son1.vue'
- import Son2 from './components/Son2.vue'
- export default {
- name: 'app',
- data: function () {
- return {
- }
- },
- components: {
- Son1,
- Son2
- }
- }
- </script>
- <style>
- #app {
- width: 600px;
- margin: 20px auto;
- border: 3px solid #ccc;
- border-radius: 3px;
- padding: 10px;
- }
- </style>
复制代码 main.js
- import Vue from 'vue'
- import App from './App.vue'
- Vue.config.productionTip = false
- new Vue({
- render: h => h(App)
- }).$mount('#app')
复制代码 Son1.vue
- <template>
- <div class="box">
- <h2>Son1 子组件</h2>
- 从vuex中获取的值: <label></label>
- <br>
- <button>值 + 1</button>
- </div>
- </template>
- <script>
- export default {
- name: 'Son1Com'
- }
- </script>
- <style lang="css" scoped>
- .box{
- border: 3px solid #ccc;
- width: 400px;
- padding: 10px;
- margin: 20px;
- }
- h2 {
- margin-top: 10px;
- }
- </style>
复制代码 Son2.vue
- <template>
- <div class="box">
- <h2>Son2 子组件</h2>
- 从vuex中获取的值:<label></label>
- <br />
- <button>值 - 1</button>
- </div>
- </template>
- <script>
- export default {
- name: 'Son2Com'
- }
- </script>
- <style lang="css" scoped>
- .box {
- border: 3px solid #ccc;
- width: 400px;
- padding: 10px;
- margin: 20px;
- }
- h2 {
- margin-top: 10px;
- }
- </style>
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |