6.2全局共享数据
//前两种方法是使用最多并且最简单的
1.通过VUE的原型共享数据
//代码例子1 Vue.prototype.baseURL="http://www.baidu.com"
2.通过globalData共享数据
//代码例子2 getApp().globalData.text='test'
//3.vuex
//4.本地存储
//注释:后两种方法不常使用,自己了解即可
//第一种获取数据方式
//在全局变量共享中,文件编写需要在main.js中编写
//../mian.js
Vue.config.productionTip = false
//定义全局数据,通过vue的原型来实现,在下面声明之后,跳到../index5/index.vue中的<scrip>模块中的methods下面用onload来实现
Vue.prototype.baseURL="www.baidu.com"
//../index5/index.vue的<script>模块
//onLoad 页面加载完毕就睡触发的生命周期,此处onload是经常需要使用的函数,一定要记得
onLoad() {
console.log(this.baseURL);
}
//第二种获取数据方式
//在../app.vue文件中的<script>模块中声明函数
globalData:{
base:"www.360.com" //此处不加引号,加引号会报错,
}
//跳转到../index5/index.vue中的<script>模块中
//onLoad 页面加载完毕就睡触发的生命周期
onLoad() {
//获取Vue原型提供的数据
//console.log(this.baseURL);
//获取globaldata数据
console.log(getApp().globalData.base);
}
此刻可以声明,在Vue原型中获取数据的话,首先需要在main.js中寻找或者创建Vue数据,然后在任意页面中使用函数console.log(this.baseurl);函数获取数据内容的
但是在全局变量中获得数据的话,实在app.vue中声明变量内容,然后在任意页面中使用函数console.log(getApp().globalData.base);函数获取数据,但是一定要记得,需要用onload函数声明,这是一个加载完页面就触发的生命周期函数
6.3组件插槽
1.标签其实也是数据的一种,想实现动态的给子组件传递标签,就可以使用插槽slot
//此处是父组给自组传递标签
2.通过slot来实现占位符
//此时准备在一个空白的index.vue中封装一个新的表单,包括:标题,数据等不固定的标签
第一步:在创建的componens文件中再新增一个my-form.vue的组件文件
第二步,在文件里面声明标签,这代表着输出名字为form的表框
<view class="form">
<view class="form_title">标题</view>
<view class="form_content">内容</view>
</view>
第三步,在index.vue中的<script>模块中注册标签,代码如下
import myform form "../../components/my-form.vue";
export default{
components:{ //此处的components指令和上文的components路径是一样的,并且都是固定的,不可更改
myform //此处的myform与上文的import后面的myform是一样的,指的是注册的标签名字
}
}
第四步,最后在上文的<view></view>模块中使用<my-form></my-form>标签,使用标签组件
然后在标签中声明模块<view><input type="text"></view>
第五步,在my-form.vue文件中,在<view>模块内,使用<slot></slot>完成一个文字输入框,但是这只
是最基础的,因为这个文本框只能提供一个输入框,无法换行,无法限定输入字数
第六步:可以在上面是输入的<input type="text">后买你输入
<radio></radio> //圆形选择框-选定之后无法取消
<checkbox></checkbox> //正方形选择框-选定之后可以通过再次点击进行取消